SqlDataAdapter.UpdateCommand 属性

定义

获取或设置一个 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设置 SelectCommandInsertCommandUpdateCommandDeleteCommand 属性。 它假定你已经创建了 一个 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传播到数据源的每个列,都应将参数添加到 InsertCommandUpdateCommandDeleteCommand

参数 SourceColumn 的 属性应设置为列的名称。 这表示参数的值不是手动设置的,而是取自当前处理的行中的特定列。

适用于