SqlDataAdapter 类

定义

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

public ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapter, ICloneable
public ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapter
public ref class SqlDataAdapter sealed : 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
public sealed class SqlDataAdapter : System.Data.Common.DbDataAdapter, ICloneable, System.Data.IDbDataAdapter
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
Public NotInheritable Class SqlDataAdapter
Inherits DbDataAdapter
Public NotInheritable Class SqlDataAdapter
Inherits DbDataAdapter
Implements ICloneable, IDbDataAdapter
继承
实现

示例

以下示例使用 SqlCommandSqlDataAdapterSqlConnection 从数据库中选择记录,并使用所选行填充 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方法确定 (、 UpdateDelete) Insert对它执行的更改类型。 根据更改的类型, Insert执行 、 UpdateDelete 命令模板将修改的行传播到数据源。 当 填充 时DataSetSqlDataAdapter它会为返回的数据创建必要的表和列(如果它们尚不存在)。 但是,除非 将 属性设置为 AddWithKey,否则MissingSchemaAction隐式创建的架构中不包含主键信息。 在使用 填充数据FillSchema之前,还可以SqlDataAdapter创建 的架构DataSet,包括主键信息。 有关详细信息,请参阅 向数据集添加现有约束

SqlDataAdapterSqlConnectionSqlCommand 结合使用,以在连接到 SQL Server 数据库时提高性能。

备注

如果您要通过 SQL Server 存储过程使用 DataAdapter 来编辑或删除数据,请确保不要在存储过程定义中使用 SET NOCOUNT ON。 这将使返回的受影响的行数为零,DataAdapter 会将其解释为并发冲突。 在这种情况下,将引发 DBConcurrencyException

SqlDataAdapter还包括 、SelectCommandInsertCommandDeleteCommandUpdateCommandTableMappings 属性,以便于加载和更新数据。

创建 实例 SqlDataAdapter 时,读/写属性设置为初始值。 有关这些值的列表,请参阅 SqlDataAdapter 构造函数。

InsertCommandDeleteCommandUpdateCommand 是泛型模板,通过参数机制自动填充每个修改行中的单个值。

对于传播到 上的 Update数据源的每个列,都应将参数添加到 InsertCommandUpdateCommandDeleteCommand。 对象的 SourceColumn 属性 DbParameter 应设置为列的名称。 此设置指示参数的值不是手动设置的,而是从当前处理的行中的特定列获取的。

注意

InvalidOperationException如果Fill调用 了 方法,并且表中包含客户端计算机上不可用的用户定义类型,则会出现 。 有关详细信息,请参阅 CLR 用户定义类型

构造函数

SqlDataAdapter()

初始化 SqlDataAdapter 类的新实例。

SqlDataAdapter(SqlCommand)

初始化 SqlDataAdapter 类的新实例,用指定的 SqlCommand 作为 SelectCommand 的属性。

SqlDataAdapter(String, SqlConnection)

使用 SqlDataAdapterSelectCommand 对象初始化 SqlConnection 类的一个新实例。

SqlDataAdapter(String, String)

SqlDataAdapter 和一个连接字符串初始化 SelectCommand 类的一个新实例。

字段

DefaultSourceTableName

DataAdapter 对象用于表映射的默认名称。

(继承自 DbDataAdapter)

属性

AcceptChangesDuringFill

获取或设置一个值,该值指示在任何 Fill 操作过程中,在将 AcceptChanges() 添加到 DataRow 之后是否在 DataTable 上调用它。

(继承自 DataAdapter)
AcceptChangesDuringUpdate

获取或设置在 AcceptChanges() 期间是否调用 Update(DataSet)

(继承自 DataAdapter)
CanRaiseEvents

获取一个指示组件是否可以引发事件的值。

(继承自 Component)
Container

获取包含 IContainerComponent

(继承自 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

获取或设置 Fill 方法是应当返回提供程序特定的值,还是返回公用的符合 CLS 的值。

(继承自 DataAdapter)
SelectCommand

获取或设置一个 Transact-SQL 语句或存储过程,用于在数据源中选择记录。

Site

获取或设置 ComponentISite

(继承自 Component)
TableMappings

获取一个集合,该集合提供源表和 DataTable之间的主映射。

(继承自 DataAdapter)
UpdateBatchSize

获取或设置每次到服务器的往返过程中处理的行数。

UpdateBatchSize

获取或设置一个值,该值启用或禁用批处理支持,并且指定可在一次批处理中执行的命令的数量。

(继承自 DbDataAdapter)
UpdateCommand

获取或设置一个 Transact-SQL 语句或存储过程,用于更新数据源中的记录。

方法

AddToBatch(IDbCommand)

向当前批处理添加 IDbCommand

(继承自 DbDataAdapter)
ClearBatch()

从批处理中移除所有 IDbCommand 对象。

(继承自 DbDataAdapter)
CloneInternals()
已过时.
已过时.
已过时.
已过时.

创建此 DataAdapter 实例的一个副本。

(继承自 DataAdapter)
CreateObjRef(Type)

创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。

(继承自 MarshalByRefObject)
CreateRowUpdatedEvent(DataRow, IDbCommand, StatementType, DataTableMapping)

初始化 RowUpdatedEventArgs 类的新实例。

(继承自 DbDataAdapter)
CreateRowUpdatingEvent(DataRow, IDbCommand, StatementType, DataTableMapping)

初始化 RowUpdatingEventArgs 类的新实例。

(继承自 DbDataAdapter)
CreateTableMappings()

创建一个新的 DataTableMappingCollection

(继承自 DataAdapter)
Dispose()

释放由 Component 使用的所有资源。

(继承自 Component)
Dispose(Boolean)

释放由 DbDataAdapter 占用的非托管资源,还可以另外再释放托管资源。

(继承自 DbDataAdapter)
Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
ExecuteBatch()

执行当前批处理。

(继承自 DbDataAdapter)
Fill(DataSet)

DataSet 中添加或刷新行。

(继承自 DbDataAdapter)
Fill(DataSet, Int32, Int32, String)

DataSet 的指定范围中添加或刷新行以匹配使用 DataSetDataTable 名称的数据源中的行。

(继承自 DbDataAdapter)
Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior)

使用 DataSet 和源表名称、命令字符串以及命令行为,在 DataSet 的指定范围中添加或刷新某些行以使它们与数据源中对应的行相一致。

(继承自 DbDataAdapter)
Fill(DataSet, String)

DataSet 中添加或刷新行以匹配使用 DataSetDataTable 名称的数据源中的行。

(继承自 DbDataAdapter)
Fill(DataSet, String, IDataReader, Int32, Int32)

DataSet 的指定范围中添加或刷新行以与使用 DataSetDataTableIDataReader 名称的数据源中的行进行匹配。

(继承自 DbDataAdapter)
Fill(DataTable)

DataSet 的指定范围中添加或刷新行,以与使用 DataTable 名称的数据源中的行匹配。

(继承自 DbDataAdapter)
Fill(DataTable, IDataReader)

DataTable 中添加或刷新行,以与使用指定的 DataTableIDataReader 名称的数据源中的行匹配。

(继承自 DbDataAdapter)
Fill(DataTable, IDbCommand, CommandBehavior)

DataTable 中添加或刷新行,以与使用指定的 DataTableIDbCommandCommandBehavior 的数据源中的行匹配。

(继承自 DbDataAdapter)
Fill(DataTable[], IDataReader, Int32, Int32)

DataTable 对象集合的指定范围中添加或刷新行以与数据源中的行匹配。

(继承自 DataAdapter)
Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior)

DataSet 的指定范围中添加或刷新行以匹配使用 DataSetDataTable 名称的数据源中的行。

(继承自 DbDataAdapter)
Fill(Int32, Int32, DataTable[])

添加或刷新一个或多个 DataTable 对象中的行,以匹配数据源中的行,从指定记录开始并检索最多指定的最大记录数。

(继承自 DbDataAdapter)
FillSchema(DataSet, SchemaType)

将名为“Table”的 DataTable 添加到指定的 DataSet,并根据指定的 SchemaType 配置架构以匹配数据源中的架构。

(继承自 DbDataAdapter)
FillSchema(DataSet, SchemaType, IDbCommand, String, CommandBehavior)

DataTable 添加到指定的 DataSet ,并根据指定的 SchemaType配置架构以匹配数据源中的架构。

(继承自 DbDataAdapter)
FillSchema(DataSet, SchemaType, String)

DataTable 添加到指定的 DataSet 中,并根据指定的 SchemaTypeDataTable 配置架构以匹配数据源中的架构。

(继承自 DbDataAdapter)
FillSchema(DataSet, SchemaType, String, IDataReader)

向指定的 DataTable 添加一个 DataSet

(继承自 DataAdapter)
FillSchema(DataTable, SchemaType)

根据指定的 SchemaType 配置指定 DataTable 的架构。

(继承自 DbDataAdapter)
FillSchema(DataTable, SchemaType, IDataReader)

向指定的 DataTable 添加一个 DataSet

(继承自 DataAdapter)
FillSchema(DataTable, SchemaType, IDbCommand, CommandBehavior)

根据指定的 DataTable、命令字符串以及 SchemaType 值配置指定 CommandBehavior 的架构。

(继承自 DbDataAdapter)
GetBatchedParameter(Int32, Int32)

从当前批处理中的其中一个命令返回一个 IDataParameter

(继承自 DbDataAdapter)
GetBatchedRecordsAffected(Int32, Int32, Exception)

返回与较大的批处理更新内的单次更新尝试有关的信息。

(继承自 DbDataAdapter)
GetFillParameters()

获取当执行 SQL SELECT 语句时由用户设置的参数。

(继承自 DbDataAdapter)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetLifetimeService()
已过时.

检索控制此实例的生存期策略的当前生存期服务对象。

(继承自 MarshalByRefObject)
GetService(Type)

返回一个对象,该对象表示由 Component 或它的 Container 提供的服务。

(继承自 Component)
GetType()

获取当前实例的 Type

(继承自 Object)
HasTableMappings()

指示是否已创建了一个 DataTableMappingCollection

(继承自 DataAdapter)
InitializeBatching()

初始化 DbDataAdapter 的批处理。

(继承自 DbDataAdapter)
InitializeLifetimeService()
已过时.

获取生存期服务对象来控制此实例的生存期策略。

(继承自 MarshalByRefObject)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
MemberwiseClone(Boolean)

创建当前 MarshalByRefObject 对象的浅表副本。

(继承自 MarshalByRefObject)
OnFillError(FillErrorEventArgs)

引发 FillError 事件。

(继承自 DbDataAdapter)
OnRowUpdated(RowUpdatedEventArgs)

引发 .NET 数据提供程序的 RowUpdated 事件。

(继承自 DbDataAdapter)
OnRowUpdating(RowUpdatingEventArgs)

引发 .NET 数据提供程序的 RowUpdating 事件。

(继承自 DbDataAdapter)
ResetFillLoadOption()

FillLoadOption 重置为默认状态,并使 Fill(DataSet) 接受 AcceptChangesDuringFill

(继承自 DataAdapter)
ShouldSerializeAcceptChangesDuringFill()

确定是否应保持 AcceptChangesDuringFill 属性。

(继承自 DataAdapter)
ShouldSerializeFillLoadOption()

确定是否应保持 FillLoadOption 属性。

(继承自 DataAdapter)
ShouldSerializeTableMappings()

确定一个或多个 DataTableMapping 对象是否存在,并且它们是否应该是持久的。

(继承自 DataAdapter)
TerminateBatching()

结束 DbDataAdapter 的批处理。

(继承自 DbDataAdapter)
ToString()

返回包含 Component 的名称的 String(如果有)。 不应重写此方法。

(继承自 Component)
Update(DataRow[])

通过为 DataSet 中的指定数组中的每个已插入、已更新或已删除的行执行相应的 INSERT、UPDATE 或 DELETE 语句来更新数据库中的值。

(继承自 DbDataAdapter)
Update(DataRow[], DataTableMapping)

通过为指定的 DataRow 对象数组中的每个已插入、已更新或已删除的行执行相应的 INSERT、UPDATE 或 DELETE 语句来更新数据库中的值。

(继承自 DbDataAdapter)
Update(DataSet)

通过为指定的 DataSet 中的每个已插入、已更新或已删除的行执行相应的 INSERT、UPDATE 或 DELETE 语句来更新数据库中的值。

(继承自 DbDataAdapter)
Update(DataSet, String)

通过为具有指定名称 DataSetDataTable 中的每个已插入、已更新或已删除的行执行相应的 INSERT、UPDATE 或 DELETE 语句来更新数据库中的值。

(继承自 DbDataAdapter)
Update(DataTable)

通过为指定的 DataTable 中的每个已插入、已更新或已删除的行执行相应的 INSERT、UPDATE 或 DELETE 语句来更新数据库中的值。

(继承自 DbDataAdapter)

事件

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

适用于

另请参阅