SqlDataAdapter.DeleteCommand Propriété

Définition

Obtient ou définit une instruction Transact-SQL ou une procédure stockée pour supprimer des enregistrements du groupe de données.

public:
 property Microsoft::Data::SqlClient::SqlCommand ^ DeleteCommand { Microsoft::Data::SqlClient::SqlCommand ^ get(); void set(Microsoft::Data::SqlClient::SqlCommand ^ value); };
public Microsoft.Data.SqlClient.SqlCommand DeleteCommand { get; set; }
member this.DeleteCommand : Microsoft.Data.SqlClient.SqlCommand with get, set
Public Property DeleteCommand As SqlCommand

Valeur de propriété

SqlCommand employé lors de l'utilisation de Update(DataSet) pour supprimer de la base de données des enregistrements qui correspondent aux lignes supprimées dans DataSet.

Exemples

L’exemple suivant crée un SqlDataAdapter et définit les SelectCommandpropriétés , InsertCommand, UpdateCommandet DeleteCommand . Il suppose que vous avez déjà créé un SqlConnection objet.

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;
    }
}

Remarques

Pendant Update, si cette propriété n’est pas définie et que les informations de clé primaire sont présentes dans , DataSetle DeleteCommand peut être généré automatiquement si vous définissez la SelectCommand propriété et utilisez .SqlCommandBuilder Ensuite, toutes les commandes supplémentaires que vous ne définissez pas sont générées par .SqlCommandBuilder Cette logique de génération nécessite que les informations de colonne clés soient présentes dans .DataSet Pour plus d’informations, consultez Génération de commandes avec CommandBuilders.

Quand DeleteCommand est affecté à un précédemment créé SqlCommand, le n’est SqlCommand pas cloné. conserve DeleteCommand une référence à l’objet créé précédemment SqlCommand .

Pour chaque colonne que vous propagez vers la source de données sur Update, un paramètre doit être ajouté au InsertCommand, UpdateCommandou DeleteCommand. La SourceColumn propriété du paramètre doit être définie sur le nom de la colonne. Cela indique que la valeur du paramètre n’est pas définie manuellement, mais est extraite de la colonne particulière de la ligne actuellement traitée.

S’applique à