SqlDataAdapter 类  
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示用于填充 DataSet 和更新 SQL Server 数据库的一组数据命令和一个数据库连接。 此类不能被继承。
public ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapter, ICloneable, System::Data::IDbDataAdapterpublic ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapter, ICloneablepublic ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapterpublic sealed class SqlDataAdapter : System.Data.Common.DbDataAdapter, ICloneable, System.Data.IDbDataAdapterpublic sealed class SqlDataAdapter : System.Data.Common.DbDataAdapter, ICloneablepublic sealed class SqlDataAdapter : System.Data.Common.DbDataAdaptertype SqlDataAdapter = class
    inherit DbDataAdapter
    interface IDbDataAdapter
    interface IDataAdapter
    interface ICloneabletype SqlDataAdapter = class
    inherit DbDataAdapter
    interface IDataAdapter
    interface IDbDataAdapter
    interface ICloneablePublic NotInheritable Class SqlDataAdapter
Inherits DbDataAdapter
Implements ICloneable, IDbDataAdapterPublic NotInheritable Class SqlDataAdapter
Inherits DbDataAdapter
Implements ICloneablePublic 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。 |