首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

22.3.4  更新数据源

应用程序已经从数据库中选择了数据,本节将说明把数据的改变返回至数据库。如果您按照上一节的步骤进行,就应得到一个包含连接、DataAdapterDataSet对象的应用程序。剩下的就只是把DataSetDataGrid联系起来,添加一些逻辑,以从数据库中检索数据并显示它们,然后把数据的改变返回至数据库。

22-23显示了这个示例的窗体,它基于UpdatingData示例代码。

  22-23

该窗体包含一个DataGrid控件和两个按钮。当用户单击Retrieve按钮时,就执行下述代码:

private void retrieveButton_Click(object sender, System.EventArgs e)

{

   //Fill the data adapter from the database

supplierDataAdapter1.Fill (supplierDataSet , "Supplier") ;

 

//And display the data in the data grid…

   dataGrid1.SetDataBinding (supplierDataSet , "Supplier") ;

 

//And disable the retrieve button…

retrieveButton.Enabled = fasle;

}

这段代码利用前面创建的DataAdapter(Server Explorer拖放一个数据库表)填充DataSet。我们填充了Supplier数据表和数据库中的所有记录。接着调用SetDataBinding(),在屏幕上显示这些记录。

在浏览了数据,进行了一些修改后,就可以单击Update按钮,执行如下代码:

private void updateButton_Click(object sender, System.EventArgs e)

{

   //Update the database

   int modified = supplierDataAdapter.Update(supplierDataSet, " Supplier" ) ;

 

   if (modified > 0)

     MessageBox.Show9 string.Format ("Modified {o} rows" , modified));

}

这段代码也是很简单的,因为DataAdapter完成了大部分工作。Update()方法迭代DataSet被选中的表中的数据,在数据库上对每个修改执行相应的SQL语句,注意这个方法返回一个int型的值,这是Updata()方法所修改的行数。这个示例利用这个数字显示被修改的行数。

21章详细讨论了DataAdapter的使用,简言之,它代表了SELECTINSERTUPDATEDELETE操作的SQL语句。当调用Update()方法时,它对每个已修改的行执行相应的语句,这会使所有已修改的行执行UPDATE语句,所有已删除的行执行DELETE语句等。所执行的命令在默认情况下都是简单的SQL语句。还可以创建相应的命令对象,把它们赋予DataAdapter的属性,从而使用存储过程。

如果要利用存储过程的所有优点,但没有时间编写自己的存储过程,可以使用Visual Studio .NET向导。从DataAdapter的关联菜单中,选择Configure Data Adapter菜单项,就会显示一个Configuration向导,在其中选择DataAdapter的数据源,如图22-24所示。

在选择Create new stored procedures后,单击Next,就进入自动为SELECTINSERTUPDATEDELETE语句生成新存储过程的向导页面,最后修改项目中生成的代码,添加对这些存储过程的调用,而不是直接调用SQL语句。

除了生成新的存储过程外,还可以选择现有的存储过程,填充DataAdapter上的4SQL命令。当手工编写的存储过程已经可以使用时,或者存储过程执行其他一些函数(例如审查改变或更新链接的记录等)时,这种方式是很有效的。

  22-24

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论