ADO.NET基础必备之SqlDataAdapter 类

SqlDataAdapter

表示用于填充 DataSet 和更新 SQL Server 数据库的一组数据命令和一个数据库连接。无法继承此类。

――语法:

public sealed class SqlDataAdapter : DbDataAdapter,

       IDbDataAdapter, IDataAdapter, ICloneable

SqlDataAdapter 是 DataSet 和 SQL Server 之间的桥接器,用于检索和保存数据。

SqlDataAdapter 通过对数据源使用适当的 Transact-SQL 语句映射 Fill(它可更改 DataSet 中的数据以匹配数据源中的数据)和 Update(它可更改数据源中的数据以匹配 DataSet 中的数据)来提供这一桥接。

更新是逐行进行的。对于每个已插入、修改和删除的行,Update 方法会确定已对其执行的更改的类型(Insert、Update 或 Delete)。根据更改类型,执行 Insert、Update 或 Delete 命令模板将已修改的行传播给数据源。

当 SqlDataAdapter 填充 DataSet 时,它为返回的数据创建必需的表和列(如果这些表和列尚不存在)。但是,除非 MissingSchemaAction 属性设置为 AddWithKey,否则这个隐式创建的架构中不包括主键信息。也可以使用 FillSchema,让 SqlDataAdapter 创建 DataSet 的架构,并在用数据填充它之前就将主键信息包括进去。

SqlDataAdapter 与 SqlConnection 和 SqlCommand 一起使用,以便在连接到 SQL Server 数据库时提高性能。

SqlDataAdapter.Fill 方法

填充 DataSet 或 DataTable。

 

常用重载:

Fill(DataSet)

在 DataSet 中添加或刷新行。 (继承自 DbDataAdapter。)

-语法:

public override int Fill(

       DataSet dataSet

)

-参数

dataSet

类型:System.Data.DataSet

要用记录和架构(如有必要)填充的 DataSet。

-返回值

类型:System.Int32

已在 DataSet 中成功添加或刷新的行数。这不包括受不返回行的语句影响的行。

Fill 方法使用 SELECT 语句从数据源中检索数据。与 Select 命令关联的 IDbConnection 对象必须有效,但不需要将其打开。如果调用 Fill 之前 IDbConnection 已关闭,则将其打开以检索数据,然后再将其关闭。如果调用 Fill 之前连接已打开,它将保持打开状态。

 Fill(DataTable)

在 DataSet 的指定范围中添加或刷新行,以与使用 DataTable 名称的数据源中的行匹配。 (继承自 DbDataAdapter。)

-语法:

public int Fill(

       DataTable dataTable

)

-参数

dataTable

类型:System.Data.DataTable

-返回值

类型:System.Int32

已在 DataSet 中成功添加或刷新的行数。这不包括受不返回行的语句影响的行。

Fill(DataTable, IDataReader)

在 DataTable 中添加或刷新行以与使用 DataTable 名称和指定的 IDataReader 的数据源中的行匹配。 (继承自 DataAdapter。)

 Fill(DataSet, String)

在 DataSet 中添加或刷新行以匹配使用 DataSet 和 DataTable 名称的数据源中的行。 (继承自 DbDataAdapter。)

DbDataAdapter.Update 方法

为 DataSet 中每个已插入、已更新或已删除的行调用相应的 INSERT、UPDATE 或 DELETE 语句。

 

常用重载:

Update(DataRow[]) 为指定的 DataRow 对象数组中每个已插入、已更新或已删除的行调用相应的 INSERT、UPDATE 或 DELETE 语句。 

 Update(DataSet) 为指定 DataSet 中每个已插入、已更新或已删除的行调用相应的 INSERT、UPDATE 或 DELETE 语句。 (重写 DataAdapter.Update(DataSet)。)

 Update(DataTable) 为指定 DataTable 中每个已插入、已更新或已删除的行调用相应的 INSERT、UPDATE 或 DELETE 语句。 

 Update(DataRow[], DataTableMapping) 为指定的 DataRow 对象数组中每个已插入、已更新或已删除的行调用相应的 INSERT、UPDATE 或 DELETE 语句。 

 Update(DataSet, String) 为具有指定 DataTable 名称的 DataSet 中每个已插入、已更新或已删除的行调用相应的 INSERT、UPDATE 或 DELETE 语句。 

原文地址:https://www.cnblogs.com/net515/p/2544136.html