DataAdapter类

上一篇 / 下一篇  2010-04-14 23:14:38

10.3  使用数据集访问和修改数据

DataSet对象表示数据源中数据的本地副本,它是Microsoft NET Framework的一个主要创新。DataSet对象本身可用来引用数据源,然而为了担当真正的数据管理工具,DataSet必须能够与数据源交互。为了实现该功能,.NET提供了DataAdapter类。

10.3.1  DataAdapter类(1)

1.DataAdapter

DataAdapter对象充当DataSet和数据源之间用于检索和保存数据的桥梁。DataAdapter类代表用于填充DataSet以及更新数据源的一组数据库命令和一个数据库连接。DataAdapter对象是ADO.NET数据提供程序的组成部分,该数据提供程序还包括连接对象、数据读取器对象和命令对象。

每个DataAdapter都在DataSet中的单个DataTable对象和SQL语句或存储过程所产生的单个结果集之间交换数据。可以使用DataAdpater在DataSet和数据源之间交换数据。一个常见例子是应用程序将数据从数据库读到DataSet中,然后将DateSet中的更改写回到数据库中。然而,DataAdapter可以从任何数据源中检索和更新数据(不仅仅是数据库),例如从Microsoft BizTalk服务器应用程序将数据读取到DataSet。

XxxDataAdapter类提供了方便地管理断开式功能性的途径,如图9-12所示。它用于填充数据集,然后以数据集的任何更改来更新相应的数据源。

 
(点击查看大图)图10-13  XxxDataAdapter对象模型

DataAdapter是为将查询结果存储到DataSet对象和DataTable对象中而设计的。Command对象使用户能够通过DataReader对象来检查查询结果。DataAdapter对象由一系列Command对象和决定DataAdapter如何与DataSet通信的映射属性的集合组成。

当使用DataAdapter将查询结果存储到DataSet时,DataAdapter使用Command与数据库进行通信。在内部,DataAdapter使用DataReader读取结果,然后将该结果复制到DataSet的新行中。DataAdapter用来从数据库中读取数据的Command对象存储在DataAdapter对象的SelectCommand属性中。

DataAdapter对象还有其他一些属性也包含Command对象:InsertCornmand、UpdateCommand和DeleteCommand。DataAdapter使用这些Command对象将保存在DataSet中的更改提交到数据库。

可以使用数据适配器来填充DataSet,并将数据的更改传送回数据源。

使用带SQL Server .NET数据提供程序的DataSet的步骤如下:

(1)创建SqlConnection对象,连接到SQL Server数据库。

(2)创建SqlDataAdapter对象。该对象包含能够指向4个SqlCommand对象的属性,这些对象指定SQL语句在数据库中进行SELECT、INSERT、DELETE和UPDATE等数据操作。

(3)创建包含一个或多个表的DataSet对象。

(4)使用SqlDataAdapter对象,通过调用Fill方法来填充DataSet表。SqlDataAdapter隐式执行包含SELECT语句的SqlCommand对象。

(5)修改DataSet中的数据。可以通过编程方式来执行修改,或者将DataSet绑定到用户界面控件(例如DataGrid),然后在控件中更改数据。

(6)在准备将数据更改返回数据库时,可以使用SqlDataAdapter并调用Update方法。SqlDataAdapter对象隐式使用其SqlCommand对象对数据库执行INSERT、DELETE和UPDATE语句。

2.DataAdapter类的属性和方法

尽管DataAdapter类包含很多属性和方法,但很可能每次只使用它们的某个子集。使用DataAdapter可对来自数据源的记录进行操作。通过使用4个DataAdapter属性(指定执行某条SQL语句或调用某个存储过程)中的一个,可以指定所要执行的操作。这些属性实际上是SqlCommand或OleDbCommand类的实例对象:

SelectCommand引用从数据源中检索行的Command对象。

InsertCommand引用将插入的行从DataSet写入数据源的Command对象。

UpdateCommand引用将修改的行从DataSet写入数据源的Command对象。

DeleteCommand引用从数据源中删除行的Command对象。

使用DataAdapter提供的方法,可以填充DataSet或将DataSet表中的更改传送到相应的数据存储区。这些方法包括:

Fill。使用SqlDataAdapter(或OleDbDataAdapter)的这个方法,从数据源增加或刷新行,并将这些行放到DataSet表中。Fill方法调用SelectCommand属性所指定的SELECT语句。

Update。使用DataAdapter对象的这个方法,将DataSet表的更改传送到相应的数据源中。该方法为DataSet的DataTable中每一指定的行调用相应的INSERT、UPDATE或DELETE命令。


TAG:

 

评分:0

我来说两句

Open Toolbar