SqlDataAdapter.UpdateCommand 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置一个 Transact-SQL 语句或存储过程,用于更新数据源中的记录。
public:
property Microsoft::Data::SqlClient::SqlCommand ^ UpdateCommand { Microsoft::Data::SqlClient::SqlCommand ^ get(); void set(Microsoft::Data::SqlClient::SqlCommand ^ value); };
public Microsoft.Data.SqlClient.SqlCommand UpdateCommand { get; set; }
member this.UpdateCommand : Microsoft.Data.SqlClient.SqlCommand with get, set
Public Property UpdateCommand As SqlCommand
属性值
在 SqlCommand 过程中使用的 Update(DataSet),用于在数据库中更新对应于 DataSet 中已修改行的记录。
示例
以下示例创建 并SqlDataAdapter设置 SelectCommand、 InsertCommandUpdateCommand 和 DeleteCommand 属性。 它假定你已经创建了 一个 SqlConnection 对象。
using Microsoft.Data.SqlClient;
class Program
{
static void Main()
{
}
public static SqlDataAdapter CreateCustomerAdapter(
SqlConnection connection)
{
SqlDataAdapter adapter = new SqlDataAdapter();
// Create the SelectCommand.
SqlCommand command = new SqlCommand("SELECT * FROM Customers " +
"WHERE Country = @Country AND City = @City", connection);
// Add the parameters for the SelectCommand.
command.Parameters.Add("@Country", SqlDbType.NVarChar, 15);
command.Parameters.Add("@City", SqlDbType.NVarChar, 15);
adapter.SelectCommand = command;
// Create the InsertCommand.
command = new SqlCommand(
"INSERT INTO Customers (CustomerID, CompanyName) " +
"VALUES (@CustomerID, @CompanyName)", connection);
// Add the parameters for the InsertCommand.
command.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
command.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 40, "CompanyName");
adapter.InsertCommand = command;
// Create the UpdateCommand.
command = new SqlCommand(
"UPDATE Customers SET CustomerID = @CustomerID, CompanyName = @CompanyName " +
"WHERE CustomerID = @oldCustomerID", connection);
// Add the parameters for the UpdateCommand.
command.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
command.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 40, "CompanyName");
SqlParameter parameter = command.Parameters.Add(
"@oldCustomerID", SqlDbType.NChar, 5, "CustomerID");
parameter.SourceVersion = DataRowVersion.Original;
adapter.UpdateCommand = command;
// Create the DeleteCommand.
command = new SqlCommand(
"DELETE FROM Customers WHERE CustomerID = @CustomerID", connection);
// Add the parameters for the DeleteCommand.
parameter = command.Parameters.Add(
"@CustomerID", SqlDbType.NChar, 5, "CustomerID");
parameter.SourceVersion = DataRowVersion.Original;
adapter.DeleteCommand = command;
return adapter;
}
}
注解
在 期间 Update,如果未设置此属性,并且中存在 DataSet主键信息, UpdateCommand 则可以在设置 SelectCommand 属性并使用 SqlCommandBuilder时自动生成 。 然后,未设置的任何其他命令都由 SqlCommandBuilder生成。 此生成逻辑要求键列信息存在于 中 DataSet。 有关详细信息,请参阅使用 CommandBuilders 生成命令。
当 UpdateCommand 分配给以前创建的 SqlCommand时, SqlCommand 不会克隆 。 维护 UpdateCommand 对以前创建的 SqlCommand 对象的引用。
注意
如果执行此命令返回行,则更新的行可能与 合并 DataSet ,具体取决于如何设置对象的 UpdatedRowSource 属性 SqlCommand 。
对于在 上 Update传播到数据源的每个列,都应将参数添加到 InsertCommand
、 UpdateCommand
或 DeleteCommand
。
参数 SourceColumn
的 属性应设置为列的名称。 这表示参数的值不是手动设置的,而是取自当前处理的行中的特定列。