SqlDataAdapter 类

定义

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

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

示例

以下示例使用 SqlCommandSqlDataAdapterSqlConnection 从数据库中选择记录,并使用所选行填充 DataSet 。 然后返回填充 DataSet 的 。 为此,向 方法传递了一个初始化 DataSet的 、一个连接字符串,以及一个作为 Transact-SQL SELECT 语句的查询字符串。

using Microsoft.Data.SqlClient;
using System.Xml;
using System.Data.Common;
using System.Windows.Forms;

public class Form1 : Form
{
    protected DataSet DataSet1;
    protected DataGrid dataGrid1;

    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;
        }
    }
}

注解

充当 SqlDataAdapter和 SQL Server之间的DataSet桥梁,用于检索和保存数据。 通过映射 Fill来提供此桥,该映射会更改 中的数据DataSet以匹配数据源中的数据;和 Update(使用针对数据源的相应 Transact-SQL 语句更改数据源中的数据以匹配 中的数据DataSet)。SqlDataAdapter 更新按行执行。 对于每个插入、修改和删除的行, Update 方法确定 (、 UpdateDelete) Insert对它执行的更改类型。 根据更改的类型, Insert执行 、 UpdateDelete 命令模板将修改后的行传播到数据源。 SqlDataAdapter当 填充 时DataSet,它会为返回的数据创建必要的表和列(如果它们尚不存在)。 但是,除非 将 属性设置为 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 类的一个新实例。

属性

DeleteCommand

获取或设置一个 Transact-SQL 语句或存储过程,以从数据集删除记录。

InsertCommand

获取或设置一个 Transact-SQL 语句或存储过程,以在数据源中插入新记录。

SelectCommand

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

UpdateBatchSize

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

UpdateCommand

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

事件

RowUpdated

在对数据源执行命令后的 Update(DataSet) 过程中发生。 尝试进行更新,因此激发了该事件。

RowUpdating

在对数据源执行命令前的 Update(DataSet) 过程中发生。 尝试进行更新,因此激发了该事件。

显式接口实现

ICloneable.Clone()

有关此成员的说明,请参见 Clone()

IDbDataAdapter.DeleteCommand

有关此成员的说明,请参见 DeleteCommand

IDbDataAdapter.InsertCommand

有关此成员的说明,请参见 InsertCommand

IDbDataAdapter.SelectCommand

有关此成员的说明,请参见 SelectCommand

IDbDataAdapter.UpdateCommand

有关此成员的说明,请参见 UpdateCommand

适用于