巧学ADO.NET DataAdapter参数使用

开发 后端
这里介绍了ADO.NET DataAdapter参数的使用和设置,调用 DataAdapter 的 Fill 方法之前必须设置 SelectCommand 属性。

大家对与ADO.NET都有一定的了解,这里我们一起来看看关于ADO.NET DataAdapter参数的知识要领。DbDataAdapter具有四个用于从数据源检索数据和更新数据源中数据的属性:SelectCommand 属性返回数据源中的数据;InsertCommand、UpdateCommand 和 DeleteCommand 属性用于管理数据源中的更改。

调用 DataAdapter 的 Fill 方法之前必须设置 SelectCommand 属性。在调用 DataAdapter 的 Update 方法之前必须设置 InsertCommand、UpdateCommand 或 DeleteCommand 属性,具体取决于对 DataTable 中的数据做了哪些更改。

例如,如果已添加行,在调用 Update 之前必须设置 InsertCommand。当 Update 正在处理已插入、已更新或已删除的行时,DataAdapter 将使用相应的 Command 属性来处理该操作。有关已修改行的当前信息将通过 Parameters 集合传递到 Command 对象。

当更新数据源中的行时,将调用 UPDATE 语句,该语句使用唯一标识符来标识该表中要更新的行。该唯一标识符通常是主键字段的值。UPDATE 语句使用的参数既包含唯一标识符又包含要更新的列和值,如下面的 Transact-SQL 语句所示。

  1. UPDATE Customers SET CompanyName = @CompanyName   
  2. WHERE CustomerID = @CustomerID 

ADO.NET DataAdapter参数占位符的语法取决于数据源。此示例显示 SQL Server 数据源的占位符。使用问号 (?) 占位符代表 System.Data.OleDb 和 System.Data.Odbc 参数。

在此 Visual Basic 示例中,CompanyName 字段使用 CustomerID 等于 @CustomerID 参数值的行中的 @CompanyName 参数值来进行更新。这些参数使用 SqlParameter 对象的 SourceColumn 属性从已修改的行中检索相关信息。下面是上一示例 UPDATE 语句的参数。代码假定变量 adapter 表示有效的 SqlDataAdapter 对象。

  1. adapter.Parameters.Add( _  
  2. "@CompanyName", SqlDbType.NChar, 15, "CompanyName")  
  3. Dim parameter As SqlParameter = _ 
  4. adapter.UpdateCommand.Parameters.Add("@CustomerID", _  
  5. SqlDbType.NChar, 5, "CustomerID")  
  6. parameter.SourceVersion = DataRowVersion.Original 

#T#Parameters 集合的 Add 方法接受参数的名称、数据类型、大小(如果适用于该类型)以及 DataTable 中的 SourceColumn 的名称。请注意,@CustomerID 参数的 SourceVersion 设置为 Original。这样可以保证,如果标识列的值已经在修改后的 DataRow 中被更改,就一定会更新数据源中的现有行。在这种情况下,Original 行值将匹配数据源中的当前值,而 Current 行值将包含更新的值。没有设置 @CompanyName 参数的 SourceVersion,而将使用默认的 Current 行值。

对于 DataAdapter 的 Fill 操作和 DataReader 的 Get 方法,都将从 .NET Framework 数据提供程序中返回的类型来推断 .NET Framework 类型。推断的 .NET Framework 类型和 Microsoft SQL Server、OLE DB 和 ODBC 数据类型的访问器方法在 ADO.NET 中的数据类型映射 中说明。

SourceColumn 和 SourceVersion 可以作为ADO.NET DataAdapter参数传递给 Parameter 构造函数,也可以设置为现有 Parameter 的属性。SourceColumn 是将要从中检索 Parameter 值的 DataRow 中的 DataColumn 的名称。SourceVersion 指定 DataAdapter 用于检索该值的 DataRow 版本。

责任编辑:田树 来源: 博客
相关推荐

2009-11-12 10:15:37

ADO.NET使用

2009-11-04 11:30:35

ADO.NET Dat

2009-11-11 14:04:14

ADO.NET连接池

2010-01-04 10:19:45

ADO.NET Dat

2009-11-12 13:26:56

使用ADO.NET参数

2009-12-31 10:47:05

ADO.net INS

2009-12-28 15:11:36

ADO.NET专家

2009-12-21 14:04:48

ADO.NET参数

2009-12-25 16:56:36

ADO.NET建立连接

2009-12-30 14:21:21

ADO.NET设置

2009-12-31 14:28:09

ADO.NET参数

2009-12-31 13:50:46

ADO.NET模型

2009-11-04 10:07:52

ADO.NET DbP

2009-10-29 10:34:31

ADO.NET使用技巧

2009-12-22 16:35:11

ADO.NET控件

2009-12-21 14:50:47

ADO.NET优化

2009-12-22 15:20:25

ADO.NET功能

2009-11-04 09:18:12

ADO.NET _Re

2009-12-21 16:53:06

ADO.NET使用说明

2009-08-21 16:35:08

使用C#结合ADO.N
点赞
收藏

51CTO技术栈公众号