SqlDataAdapter.DeleteCommand SqlDataAdapter.DeleteCommand SqlDataAdapter.DeleteCommand SqlDataAdapter.DeleteCommand Property

定義

データ セットからレコードを削除するための Transact-SQL ステートメントまたはストアド プロシージャを取得または設定します。Gets or sets a Transact-SQL statement or stored procedure to delete records from the data set.

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

プロパティ値

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

次の例ではSqlDataAdapter 、を作成SelectCommandし、 UpdateCommand、、 DeleteCommand 、および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

注釈

DeleteCommand DataSet SqlCommandBuilder SelectCommandでは、このプロパティが設定されておらず、に主キー情報が含まれている場合、プロパティを設定してを使用すると、が自動的に生成されます。 UpdateDuring Update, if this property is not set and primary key information is present in the DataSet, the DeleteCommand 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.

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

Updateデータソースに反映されるすべての列について、 InsertCommandUpdateCommand、またはDeleteCommandにパラメーターを追加する必要があります。For every column that you propagate to the data source on Update, a parameter should be added to the 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 is taken from the particular column in the currently processed row.

適用対象

こちらもご覧ください