Cette documentation est archivée et n’est pas conservée.

SqlDataSource.DeleteCommand, propriété

Remarque : cette propriété est nouvelle dans le .NET Framework version 2.0.

Obtient ou définit la chaîne SQL que le contrôle SqlDataSource utilise pour supprimer des données de la base de données sous-jacente.

Espace de noms : System.Web.UI.WebControls
Assembly : System.Web (dans system.web.dll)

public string DeleteCommand { get; set; }
/** @property */
public String get_DeleteCommand ()

/** @property */
public void set_DeleteCommand (String value)

public function get DeleteCommand () : String

public function set DeleteCommand (value : String)

Valeur de la propriété

Une chaîne SQL que SqlDataSource utilise pour supprimer des données.

Étant donné que les différents systèmes de base de données utilisent des variantes de langage SQL, la syntaxe de la chaîne SQL dépend du fournisseur ADO.NET utilisé, qui est identifié par la propriété ProviderName. Si la chaîne SQL est une requête ou une commande paramétrée, la syntaxe du paramètre dépend également du fournisseur ADO.NET utilisé. Par exemple, si le fournisseur est System.Data.SqlClient, lequel est le fournisseur par défaut pour la classe SqlDataSource, la syntaxe du paramètre est '@parameterName'. Toutefois, si le fournisseur a la valeur System.Data.Odbc ou System.Data.OleDb, l'espace réservé du paramètre est '?'. Pour plus d'informations sur les requêtes et les commandes SQL paramétrées, consultez Utilisation de paramètres avec le contrôle SqlDataSource.

La propriété DeleteCommand peut être une chaîne SQL ou le nom d'une procédure stockée, si la base de données les prend en charge.

La propriété DeleteCommand délègue à la propriété DeleteCommand de l'objet SqlDataSourceView associé au contrôle SqlDataSource.

Remarque de sécuritéRemarque de sécurité

Pour des raisons de sécurité, la propriété DeleteCommand n'est pas stockée dans l'état d'affichage. Étant donné qu'il est possible de décoder le contenu d'état d'affichage sur le client, le stockage d'informations sensibles relatives à la structure de base de données dans l'état d'affichage pourrait entraîner une faille dans la divulgation d'informations.

L'exemple de code suivant illustre comment définir le texte DeleteCommand afin qu'il supprime un ordre de la table Orders de la base de données Northwind. Les données sont récupérées de la table Orders et sont affichés dans un contrôle GridView. GridView restitue automatiquement un bouton Supprimer lorsque la propriété AutoGenerateDeleteButton a la valeur true. En outre, lorsque vous cliquez sur le bouton Supprimer, le contrôle GridView remplit automatiquement la collection DeleteParameters et appelle la méthode Delete. Enfin, parce que ce code supprime des données, un gestionnaire d'événements est ajouté pour tenter de sauvegarder la base de données sur un disque avant que l'opération Delete soit exécutée.

<%@Page  Language="C#" %>
<%@Import Namespace="System.Data.SqlClient" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<SCRIPT runat="server">
private void OnRecordDeleting(Object source, SqlDataSourceCommandEventArgs e) {    
    // Cancel the delete operation if the checkbox is not checked.
    if (! CheckBox1.Checked) {
        e.Cancel = true;
        Label1.Text = "The command was cancelled because the CheckBox was not checked.";
    }
 }

private void OnRecordDeleted(object source, SqlDataSourceStatusEventArgs e) {
    Label1.Text = e.AffectedRows + " row(s) were deleted";
}
</SCRIPT>

<HTML>
  <BODY>
    <FORM runat="server">
        <asp:SqlDataSource
            id="SqlDataSource1"
            runat="server"
            DataSourceMode="DataSet"
            ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
            SelectCommand="SELECT * FROM Orders"            
            DeleteCommand="DELETE FROM [Order Details] WHERE OrderID=@OrderID;DELETE FROM Orders WHERE OrderID=@OrderID;"
            OnDeleting="OnRecordDeleting"
            OnDeleted="OnRecordDeleted">
        </asp:SqlDataSource>
        <br />
       <asp:CheckBox 
         id="CheckBox1" 
         runat="server"
         autopostback="true"
         text="Check To Delete Data" />
        <br />
        <br />

        <asp:GridView
            id="GridView1"
            runat="server"
            AutoGenerateColumns="False"
            DataKeyNames="OrderID"
            AutoGenerateDeleteButton="True"
            AllowPaging="True"
            PageSize="20"
            DataSourceID="SqlDataSource1">
            <Columns>
                <asp:BoundField HeaderText="Order ID" DataField="OrderID" />
                <asp:BoundField HeaderText="Customer" DataField="CustomerID" />
                <asp:BoundField HeaderText="Order Placed" DataField="OrderDate" />
                <asp:BoundField HeaderText="Order Shipped" DataField="ShippedDate" />
            </Columns>
        </asp:GridView>

        <asp:Label
            id="Label1"
            runat="server">
        </asp:Label>

    </FORM>
  </BODY>
</HTML>

<%@Page  Language="VJ#" %>
<%@Import Namespace="System.Data.SqlClient" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<SCRIPT runat="server">
     private void OnRecordDeleting(Object source, 
        SqlDataSourceCommandEventArgs e)
    {
        // Because this example actually deletes data from the Northwind
        // database, provide a way for users to recover any deleted records.
        SqlConnection cxn = new SqlConnection(
            "Data Source=localhost;Integrated Security=SSPI;" 
            + "Initial Catalog=Northwind;Connect Timeout=15");

        try {
            cxn.Open();
            SqlCommand backup = new SqlCommand();
            backup.set_Connection (cxn);
            backup.set_CommandText(
                " USE master " + " EXEC sp_addumpdevice 'disk','Northwind_1'," 
                + "'c:\\temp\\Northwind_1.dat'" 
                + " BACKUP DATABASE Northwind TO Northwind_1");
            backup.ExecuteNonQuery();
        }
        catch (SqlException se) {
            // Handle an exception thrown if the device already exists.
            Label1.set_Text("An error occurred while backing up your " 
                + "database. Please check the SQL logs.");
        }
        finally {
            // Always release the connection.
            cxn.Dispose();
        }
        Label1.set_Text("A record has been deleted. To recover your data, " 
            + "restore the database from the " 
            + "database backup named Northwind_1.dat located on the database " 
            + "server in c:\\temp.");
    } //OnRecordDeleting
</SCRIPT>

<HTML>
    <BODY>
        <FORM runat="server">

            <asp:SqlDataSource
                id="SqlDataSource1"
                runat="server"
                DataSourceMode="DataSet"
                ConnectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;"
                SelectCommand="SELECT * FROM Orders"
                DeleteCommand="DELETE FROM [Order Details] WHERE OrderID=@OrderID;DELETE FROM Orders WHERE OrderID=@OrderID;"
                OnDeleting="OnRecordDeleting">
            </asp:SqlDataSource>

            <asp:GridView
                id="GridView1"
                runat="server"
                AutoGenerateColumns="False"
                DataKeyNames="OrderID"
                AutoGenerateDeleteButton="True"
                AllowPaging="True"
                PageSize="20"
                DataSourceID="SqlDataSource1">
                <Columns>
                    <asp:BoundField HeaderText="Order ID" DataField="OrderID" />
                    <asp:BoundField HeaderText="Customer" DataField="CustomerID" />
                    <asp:BoundField HeaderText="Order Placed" DataField="OrderDate" />
                    <asp:BoundField HeaderText="Order Shipped" DataField="ShippedDate" />
                </Columns>
            </asp:GridView>

            <asp:Label
                id="Label1"
                runat="server">
            </asp:Label>

        </FORM>
    </BODY>
</HTML>

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0
Afficher: