SqlDataAdapter.UpdateCommand SqlDataAdapter.UpdateCommand SqlDataAdapter.UpdateCommand SqlDataAdapter.UpdateCommand Property

定義

データ ソース内のレコードを更新するための Transact-SQL ステートメントまたはストアド プロシージャを取得または設定します。Gets or sets a Transact-SQL statement or stored procedure used to update records in the data source.

public:
 property System::Data::SqlClient::SqlCommand ^ UpdateCommand { System::Data::SqlClient::SqlCommand ^ get(); void set(System::Data::SqlClient::SqlCommand ^ value); };
[System.Data.DataSysDescription("DbDataAdapter_UpdateCommand")]
public System.Data.SqlClient.SqlCommand UpdateCommand { get; set; }
member this.UpdateCommand : System.Data.SqlClient.SqlCommand with get, set
Public Property UpdateCommand As SqlCommand

プロパティ値

SqlCommand 処理中に、Update(DataSet) 内の変更行に対応するデータベース内のレコードを更新するための DataSetA SqlCommand used during Update(DataSet) to update records in the database that correspond to modified rows in the DataSet.

次の例ではSqlDataAdapter 、を作成SelectCommandし、 UpdateCommandDeleteCommand InsertCommand、およびの各プロパティを設定します。The following example creates a SqlDataAdapter and sets the SelectCommand, InsertCommand, UpdateCommand and DeleteCommand properties. SqlConnectionオブジェクトが既に作成されていることを前提としています。It assumes you have already created a SqlConnection object.

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;
}
Public Function CreateCustomerAdapter( _
  ByVal connection As SqlConnection) As SqlDataAdapter

    Dim adapter As SqlDataAdapter = New SqlDataAdapter()

    ' Create the SelectCommand.
    Dim command As SqlCommand = 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")
    Dim parameter As SqlParameter = 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.
    command.Parameters.Add( _
        "@CustomerID", SqlDbType.NChar, 5, "CustomerID")
    parameter.SourceVersion = DataRowVersion.Original

    adapter.DeleteCommand = command

    Return adapter
End Function

注釈

UpdateCommand DataSet SqlCommandBuilder SelectCommandでは、このプロパティが設定されておらず、に主キー情報が含まれている場合、プロパティを設定してを使用すると、が自動的に生成されます。 UpdateDuring Update, if this property is not set and primary key information is present in the DataSet, the UpdateCommand can be generated automatically if you set the SelectCommand property and use the SqlCommandBuilder. その後、設定しない追加のコマンドは、 SqlCommandBuilderによって生成されます。Then, any additional commands that you do not set are generated by the SqlCommandBuilder. この生成ロジックでは、にキー列情報が存在DataSetしている必要があります。This generation logic requires key column information to be present in the DataSet. 詳細については、「 CommandBuilders を使用したコマンドの生成」を参照してください。For more information, see Generating Commands with CommandBuilders.

以前UpdateCommandに作成さSqlCommandれたにが割り当てSqlCommandられている場合、は複製されません。When UpdateCommand is assigned to a previously created SqlCommand, the SqlCommand is not cloned. UpdateCommand 、以前に作成されたSqlCommandオブジェクトへの参照を保持します。The UpdateCommand maintains a reference to the previously created SqlCommand object.

注意

このコマンドの実行によって行が返される場合、 DataSet SqlCommandオブジェクトのUpdatedRowSourceプロパティの設定方法に応じて、更新された行がにマージされることがあります。If execution of this command returns rows, the updated rows may be merged with the DataSet depending on how you set the UpdatedRowSource property of the SqlCommand object.

Updateデータソースに反映されるすべての列について、、 UpdateCommand、またはInsertCommand DeleteCommandにパラメーターを追加する必要があります。For every column that you propagate to the data source on Update, a parameter should be added to InsertCommand, UpdateCommand, or DeleteCommand.

パラメーター SourceColumnのプロパティには、列の名前を設定する必要があります。The SourceColumn property of the parameter should be set to the name of the column. これは、パラメーターの値が手動では設定されず、現在処理されている行の特定の列から取得されることを示します。This indicates that the value of the parameter is not set manually, but taken from the particular column in the currently processed row.

適用対象

こちらもご覧ください