SqlDataAdapter.DeleteCommand 屬性

定義

取得或設定要從資料集刪除資料錄的 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); };
public System.Data.SqlClient.SqlCommand DeleteCommand { get; set; }
[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),用來刪除資料庫中的資料錄,其對應到 DataSet 中已刪除的資料列。A SqlCommand used during Update(DataSet) to delete records in the database that correspond to deleted rows in the DataSet.

屬性

範例

下列範例會建立 SqlDataAdapter,並設定 SelectCommandInsertCommandUpdateCommandDeleteCommand 屬性。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

備註

Update期間,如果未設定此屬性,且 DataSet中有主鍵資訊,則當您設定 SelectCommand 屬性並使用 SqlCommandBuilder時,會自動產生 DeleteCommandDuring 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. 如需詳細資訊,請參閱使用 Commandbuilder 產生命令For more information, see Generating Commands with CommandBuilders.

DeleteCommand 指派給先前建立的 SqlCommand時,不會複製 SqlCommandWhen 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上傳播至資料來源的每個資料行,應該將參數加入至 InsertCommandUpdateCommandDeleteCommandFor 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.

適用於

另請參閱