添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
选择频道 点击选择频道
全部
C#综合技术
C#互联网桌面应用
AppLauncher
WinForm&WPF
C#开发新技术
博文收录
Ada助手

C#新手,关于bindingnavigator中添加一个SaveButton保存的问题?

2009-01-13
我用的VS2008,在winform中,拖入控件datagridview1,bindingnavigator1,并在bindingnavigator中设置了一个textbox1和一个button1,
代码如下,已经可以实现在textbox1中搜索并把结果在dataGridView1中显示:
private void button1_Click(object sender, EventArgs e)
//String ConnectionString = global::LogisticsInfoSys.Properties.Settings.Default.ConnectionString;
//SqlConnection MyConnection = new SqlConnection(conn);
SqlConnection conn = BaseClass.DBConn.MainConn();
conn.Open();
string MySQL = "Select * From tb_Master Where iCarOrder LIKE '" + this.textbox1.Text + "'";
DataTable MyMsaterTable = new DataTable();
SqlDataAdapter tb_MasterTableAdapter = new SqlDataAdapter(MySQL, conn);
tb_MasterTableAdapter.Fill(MyMsaterTable);
this.dataGridView1.DataSource = MyMsaterTable;
if (conn.State == ConnectionState.Open)
conn.Close();
问题是,我想在bindingnavigator中又添加一个SaveButton,想实现datagridview中直接修改数据后保存,在MSDN官方上的解决答案是如下代码:
private void SaveButton_Click(System.Object sender,
System.EventArgs e)
TableAdapterName.Update(DataSetName.TableName);
如它的格式我试了N次,我几天都搞不定,请能帮助我。谢谢!!
707 13 打赏
全部评论
好,我来看看好,我来看看好,我来看看好,我来看看好,我来看看
2010-03-11
如这个格式,我写了几个都错误,应该怎样写呀?请求大家帮助点解呀。
private void SaveButton_Click(System.Object sender,
System.EventArgs e)
TableAdapterName.Update(DataSetName.TableName);
}
2009-01-14
ding
2009-01-14
OK,已经可以保存了。
谢谢:xinshoushanglua的代码,还有GTX280的提醒,
原来是需要this.validate ,呵呵,现在结贴。
2009-01-14
To GTX280,谢谢,您的方法仍然不行,唉我现在好郁闷。。。。。
2009-01-14

private void btnUpdate_Click(object sender, EventArgs e)
bs.EndEdit();//试试
sda.Update((DataTable)bs.DataSource); /////写回数据库
}
2009-01-14
To:xinshoushanglua,谢谢您的回复,我把您的代码放在我的程序里,数据绑定与加载都已成功应用,可以搜索出数据,但是您的这个更新还是不能更新,
private void btnUpdate_Click(object sender, EventArgs e)
sda.Update((DataTable)bs.DataSource); /////写回数据库
我是直接在datagridview1里直接编辑的里面搜索出的数据,修改后点的btnUpdate保存,然后再搜索同个数据出来看到数据还是没有变化。这个sda.Update((DataTable)bs.DataSource);需要怎么用?
2009-01-14
2. 绑定的datagridview,在添加了新的数据后,如果想重新写回数据库,保持数据库的同步,一下方法即可:
核心就是SqlDataAdapter+SqlCommandBuilder+BindingSource...
写了个简单的例子,测试通过:
两个按钮,一个 "加载 ",一个 "更新 ",还有一个 "DataGridView "
using System.Data;
using System.Data.SqlClient;
namespace DataGridViewUpdateToDataBase
public partial class Form1 : Form
private SqlDataAdapter sda = new SqlDataAdapter();
private BindingSource bs = new BindingSource();
public Form1()
InitializeComponent();
private void btnLoad_Click(object sender, EventArgs e)
DataBind();
//数据绑定
private void DataBind()
SqlConnection con = new SqlConnection( "server=.;database=student;uid=sa; pwd=0421 ");
sda = new SqlDataAdapter( "select * from studentDetails ", con);
SqlCommandBuilder buider = new SqlCommandBuilder(sda);
DataSet ds = new DataSet();
sda.Fill(ds, "student ");
bs .DataSource =ds.Tables [ "student "];
this.dataGridView1.DataSource = bs;
private void btnUpdate_Click(object sender, EventArgs e)
sda.Update((DataTable)bs.DataSource); /////写回数据库
注意:写回数据库时,写入的项要与select时的项一样,如果试图写入查询中没有的项,那么此项的值将为空;
2009-01-14
关注吧。希望楼主能等到答案。
2009-01-14
谢谢owenliangbin大哥,我根据您的提示在查查,如果有朋友知道,请在这里留言。感谢各位了。
2009-01-14
owenliangbin
应该是 SqlCommandBuilder 吧,没记错的话
2009-01-14
建议看看ado.net的操作。的确是上面的操作就可以,不过,先要实现些东西。具体我忘了,很久没有用了
2009-01-14
请在座各位大哥大姐能帮助我,小弟感激涕零。
2009-01-13
——到底了——
说点什么…