IDbDataAdapter.UpdateCommand IDbDataAdapter.UpdateCommand IDbDataAdapter.UpdateCommand IDbDataAdapter.UpdateCommand Property


データ ソース内のレコードを更新する SQL ステートメントを取得または設定します。Gets or sets an SQL statement used to update records in the data source.

 property System::Data::IDbCommand ^ UpdateCommand { System::Data::IDbCommand ^ get(); void set(System::Data::IDbCommand ^ value); };
public System.Data.IDbCommand UpdateCommand { get; set; }
member this.UpdateCommand : System.Data.IDbCommand with get, set
Public Property UpdateCommand As IDbCommand


データ セット内の変更された行に対応するデータ ソース内のレコードを更新するために、IDbCommand 中に使用する Update(DataSet)An IDbCommand used during Update(DataSet) to update records in the data source for modified rows in the data set.

次の例では、継承OleDbDataAdapterされたクラスのインスタンスを作成し、プロパティSelectCommandUpdateCommandプロパティを設定します。The following example creates an instance of the inherited OleDbDataAdapter class, and sets the SelectCommand and UpdateCommand properties. OleDbConnectionオブジェクトが既に作成されていることを前提としています。It assumes you have already created an OleDbConnection object.

private static OleDbDataAdapter CreateCustomerAdapter(
    OleDbConnection connection)
    OleDbDataAdapter dataAdapter = new OleDbDataAdapter();
    OleDbCommand command;
    OleDbParameter parameter;

    // Create the SelectCommand.
    command = new OleDbCommand("SELECT * FROM dbo.Customers " +
        "WHERE Country = ? AND City = ?", connection);

    command.Parameters.Add("Country", OleDbType.VarChar, 15);
    command.Parameters.Add("City", OleDbType.VarChar, 15);

    dataAdapter.SelectCommand = command;

    // Create the UpdateCommand.
    command = new OleDbCommand(
        "UPDATE dbo.Customers SET CustomerID = ?, CompanyName = ? " +
        "WHERE CustomerID = ?", connection);

        "CustomerID", OleDbType.Char, 5, "CustomerID");
        "CompanyName", OleDbType.VarChar, 40, "CompanyName");

    parameter = command.Parameters.Add(
        "oldCustomerID", OleDbType.Char, 5, "CustomerID");
    parameter.SourceVersion = DataRowVersion.Original;

    dataAdapter.UpdateCommand = command;

    return dataAdapter;
Private Function CreateCustomerAdapter( _
    ByVal connection As OleDbConnection) As OleDbDataAdapter

    Dim dataAdapter As New OleDbDataAdapter()
    Dim command As OleDbCommand
    Dim parameter As OleDbParameter

    ' Create the SelectCommand.
    command = New OleDbCommand("SELECT * FROM dbo.Customers " & _
        "WHERE Country = ? AND City = ?", connection)

    command.Parameters.Add("Country", OleDbType.VarChar, 15)
    command.Parameters.Add("City", OleDbType.VarChar, 15)

    dataAdapter.SelectCommand = command

    ' Create the UpdateCommand.
    command = New OleDbCommand("UPDATE dbo.Customers " & _
        "SET CustomerID = ?, CompanyName = ? " & _
        "WHERE CustomerID = ?", connection)

    command.Parameters.Add( _
        "CustomerID", OleDbType.Char, 5, "CustomerID")
    command.Parameters.Add( _
        "CompanyName", OleDbType.VarChar, 40, "CompanyName")

    parameter = command.Parameters.Add( _
        "oldCustomerID", OleDbType.Char, 5, "CustomerID")
    parameter.SourceVersion = DataRowVersion.Original

    dataAdapter.UpdateCommand = command

    Return dataAdapter
End Function


では、このプロパティが設定されておらず、 DataSetに主キー情報がUpdateCommand含まれている場合は、.NET Framework 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 of a .NET Framework data provider. その後、設定していない追加のコマンドは、CommandBuilder によって生成されます。Then, any additional commands that you do not set are generated by the CommandBuilder. この生成ロジックでは、にキー列情報が存在DataSetしている必要があります。This generation logic requires key column information to be present in the DataSet. 詳細については、「 CommandBuilders を使用したコマンドの生成」を参照してください。For more information see Generating Commands with CommandBuilders.

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


このコマンドの実行によってDataSet行が返された場合、これらの行はに追加されます。If execution of this command returns rows, these rows are added to the DataSet.