SqlDataAdapter 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示用于填充 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
- 实现
示例
以下示例使用 SqlCommand、 SqlDataAdapter和 SqlConnection 从数据库中选择记录,并使用所选行填充 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 方法确定 (、 Update
或 Delete
) Insert
对它执行的更改类型。 根据更改的类型, Insert
执行 、 Update
或 Delete
命令模板将修改后的行传播到数据源。 SqlDataAdapter当 填充 时DataSet,它会为返回的数据创建必要的表和列(如果它们尚不存在)。 但是,除非 将 属性设置为 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 类的一个新实例。 |
属性
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。 |