SqlDataAdapter 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示用于填充 DataSet 和更新 SQL Server 数据库的一组数据命令和一个数据库连接。 此类不能被继承。
public ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapter, ICloneable, System::Data::IDbDataAdapter
public ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapter, ICloneable
public ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapter
public sealed class SqlDataAdapter : System.Data.Common.DbDataAdapter, ICloneable, System.Data.IDbDataAdapter
public sealed class SqlDataAdapter : System.Data.Common.DbDataAdapter, ICloneable
public sealed class SqlDataAdapter : System.Data.Common.DbDataAdapter
type SqlDataAdapter = class
inherit DbDataAdapter
interface IDbDataAdapter
interface IDataAdapter
interface ICloneable
type SqlDataAdapter = class
inherit DbDataAdapter
interface IDataAdapter
interface IDbDataAdapter
interface ICloneable
Public NotInheritable Class SqlDataAdapter
Inherits DbDataAdapter
Implements ICloneable, IDbDataAdapter
Public NotInheritable Class SqlDataAdapter
Inherits DbDataAdapter
Implements ICloneable
Public NotInheritable Class SqlDataAdapter
Inherits DbDataAdapter
- 继承
- 实现
示例
以下示例使用 SqlCommand、 SqlDataAdapter和 SqlConnection 从数据库中选择记录,并使用所选行填充 DataSet 。 然后返回填充 DataSet 的 。 为此,向 方法传递了DataSet初始化的 、连接字符串,以及作为 Transact-SQL SELECT 语句的查询字符串。
private static DataSet SelectRows(DataSet dataset,
string connectionString,string queryString)
{
using (SqlConnection connection =
new SqlConnection(connectionString))
{
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand(
queryString, connection);
adapter.Fill(dataset);
return dataset;
}
}
Public Function SelectRows( _
ByVal dataSet As DataSet, ByVal connectionString As String, _
ByVal queryString As String) As DataSet
Using connection As New SqlConnection(connectionString)
Dim adapter As New SqlDataAdapter()
adapter.SelectCommand = New SqlCommand( _
queryString, connection)
adapter.Fill(dataSet)
Return dataSet
End Using
End Function
注解
用作 SqlDataAdapter和 SQL Server之间的DataSet桥梁,用于检索和保存数据。
SqlDataAdapter通过映射 Fill来提供此网桥,后者更改 中的数据DataSet以匹配数据源中的数据,以及 Update(后者更改数据源中的数据以匹配 中的数据DataSet),并使用针对数据源的适当 Transact-SQL 语句来匹配 中的数据。 更新按行执行。 对于每个插入、修改和删除的行,Update方法确定 (、 Update
或 Delete
) Insert
对它执行的更改类型。 根据更改的类型, Insert
执行 、 Update
或 Delete
命令模板将修改的行传播到数据源。 当 填充 时DataSet,SqlDataAdapter它会为返回的数据创建必要的表和列(如果它们尚不存在)。 但是,除非 将 属性设置为 AddWithKey,否则MissingSchemaAction隐式创建的架构中不包含主键信息。 在使用 填充数据FillSchema
之前,还可以SqlDataAdapter创建 的架构DataSet,包括主键信息。 有关详细信息,请参阅 向数据集添加现有约束。
SqlDataAdapter与 SqlConnection 和 SqlCommand 结合使用,以在连接到 SQL Server 数据库时提高性能。
备注
如果您要通过 SQL Server 存储过程使用 DataAdapter
来编辑或删除数据,请确保不要在存储过程定义中使用 SET NOCOUNT ON。 这将使返回的受影响的行数为零,DataAdapter
会将其解释为并发冲突。 在这种情况下,将引发 DBConcurrencyException。
SqlDataAdapter还包括 、SelectCommandInsertCommand、DeleteCommand、 UpdateCommand和 TableMappings 属性,以便于加载和更新数据。
创建 实例 SqlDataAdapter 时,读/写属性设置为初始值。 有关这些值的列表,请参阅 SqlDataAdapter 构造函数。
InsertCommand、 DeleteCommand和 UpdateCommand 是泛型模板,通过参数机制自动填充每个修改行中的单个值。
对于传播到 上的 Update数据源的每个列,都应将参数添加到 InsertCommand
、 UpdateCommand
或 DeleteCommand
。 对象的 SourceColumn 属性 DbParameter 应设置为列的名称。 此设置指示参数的值不是手动设置的,而是从当前处理的行中的特定列获取的。
注意
InvalidOperationException如果Fill调用 了 方法,并且表中包含客户端计算机上不可用的用户定义类型,则会出现 。 有关详细信息,请参阅 CLR 用户定义类型。
构造函数
SqlDataAdapter() |
初始化 SqlDataAdapter 类的新实例。 |
SqlDataAdapter(SqlCommand) |
初始化 SqlDataAdapter 类的新实例,用指定的 SqlCommand 作为 SelectCommand 的属性。 |
SqlDataAdapter(String, SqlConnection) |
使用 SqlDataAdapter 和 SelectCommand 对象初始化 SqlConnection 类的一个新实例。 |
SqlDataAdapter(String, String) |
用 SqlDataAdapter 和一个连接字符串初始化 SelectCommand 类的一个新实例。 |
字段
DefaultSourceTableName |
DataAdapter 对象用于表映射的默认名称。 (继承自 DbDataAdapter) |
属性
AcceptChangesDuringFill |
获取或设置一个值,该值指示在任何 Fill 操作过程中,在将 AcceptChanges() 添加到 DataRow 之后是否在 DataTable 上调用它。 (继承自 DataAdapter) |
AcceptChangesDuringUpdate |
获取或设置在 AcceptChanges() 期间是否调用 Update(DataSet)。 (继承自 DataAdapter) |
CanRaiseEvents |
获取一个指示组件是否可以引发事件的值。 (继承自 Component) |
Container |
获取包含 IContainer 的 Component。 (继承自 Component) |
ContinueUpdateOnError |
获取或设置一个值,该值指定在行更新过程中遇到错误时是否生成异常。 (继承自 DataAdapter) |
DeleteCommand |
获取或设置一个 Transact-SQL 语句或存储过程,以从数据集删除记录。 |
DesignMode |
获取一个值,用以指示 Component 当前是否处于设计模式。 (继承自 Component) |
Events |
获取附加到此 Component 的事件处理程序的列表。 (继承自 Component) |
FillCommandBehavior |
获取或设置用于填充数据适配器的命令的行为。 (继承自 DbDataAdapter) |
FillLoadOption |
获取或设置 LoadOption,后者确定适配器如何从 DataTable 中填充 DbDataReader。 (继承自 DataAdapter) |
InsertCommand |
获取或设置一个 Transact-SQL 语句或存储过程,以在数据源中插入新记录。 |
MissingMappingAction |
确定传入数据没有匹配的表或列时需要执行的操作。 (继承自 DataAdapter) |
MissingSchemaAction |
确定现有 DataSet 架构与传入数据不匹配时需要执行的操作。 (继承自 DataAdapter) |
ReturnProviderSpecificTypes |
获取或设置 |
SelectCommand |
获取或设置一个 Transact-SQL 语句或存储过程,用于在数据源中选择记录。 |
Site | (继承自 Component) |
TableMappings |
获取一个集合,该集合提供源表和 DataTable之间的主映射。 (继承自 DataAdapter) |
UpdateBatchSize |
获取或设置每次到服务器的往返过程中处理的行数。 |
UpdateBatchSize |
获取或设置一个值,该值启用或禁用批处理支持,并且指定可在一次批处理中执行的命令的数量。 (继承自 DbDataAdapter) |
UpdateCommand |
获取或设置一个 Transact-SQL 语句或存储过程,用于更新数据源中的记录。 |
方法
事件
Disposed |
在通过调用 Dispose() 方法释放组件时发生。 (继承自 Component) |
FillError |
在填充操作过程中出现错误时返回。 (继承自 DbDataAdapter) |
RowUpdated |
在对数据源执行命令后的 Update(DataSet) 过程中发生。 尝试进行更新,因此激发了该事件。 |
RowUpdating |
在对数据源执行命令前的 Update(DataSet) 过程中发生。 尝试进行更新,因此激发了该事件。 |
显式接口实现
ICloneable.Clone() |
有关此成员的说明,请参见 Clone()。 |
IDataAdapter.TableMappings |
获取一个集合,该集合指示源表如何映射到数据集表。 (继承自 DataAdapter) |
IDbDataAdapter.DeleteCommand |
有关此成员的说明,请参见 DeleteCommand。 |
IDbDataAdapter.InsertCommand |
有关此成员的说明,请参见 InsertCommand。 |
IDbDataAdapter.SelectCommand |
有关此成员的说明,请参见 SelectCommand。 |
IDbDataAdapter.UpdateCommand |
有关此成员的说明,请参见 UpdateCommand。 |