注意事项:
在前面的文章中将数据库中的表拖入项目中的数据集的设计视图时,VS会自动为我们对数据库做好连接,并且在程序配置文件中自动添加好了连接字符串,但采用这种方法连接上数据库后,在对数据库增加、删除、修改数据时会发现做过的修改会没有效果,具体原因参看下这里的文章:http://www.cnblogs.com/dajianshi/archive/2007/07/06/808495.html
我继续接着上篇文章介绍强类型DataSet绑定到DataGridView控件中,并执行更新数据的操作。
在项目中添加一个数据集文件后,重新生成一下,我们就可以看到一个DataSet组件出现在工具箱栏中,再向里面添加数据后,再对项目重新生成,就会多增加一个Adapter和一个AdapterManager组件,如图
我们接着在上一篇程序的界面上我们添加一个DataGridView控件,并向界面中拖入一个DataSet组件、Adpter组件和BindingSource组件。界面设计如下:
将bindingSource1的datasource属性设置为myDBDataSet1,dataMember属性设置为T_User,再将DataGridView中的datasource属性设置为bindingSource1。这样我们的数据就绑定好了。但是程序运行的时候,我们还不能直接看到结果,我添加了一个名为Grid查询的按钮,并在里面添加点击事件,如下代码:
private void btn_dgvSearch_Click(object sender, EventArgs e) { t_UsersTableAdapter1.Fill(myDBDataSet1.T_Users); }
接着我们在DataGridView中修改数据后,想要将修改后的数据保存回数据库,需要调用Adapter中的Update方法,具体使用如下,保存按钮中的代码:
private void btn_save_Click(object sender, EventArgs e) { //前两句不加也可以更新数据,但为了避免错误还是将它们加上了 dataGridView1.EndEdit(); dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit); //像数据库中执行更新操作 t_UsersTableAdapter1.Update(myDBDataSet1.T_Users); }
都不用写一条SQL语句,就可以完成数据的修改及查询操作了,而且还超简单!^_^
PS.最后那里执行修改数据后,可能你在项目中的数据库没看到有变化,请仔细看下注意事项中的说明