SqlDataSource.DeleteParameters Propriété

Définition

Obtient la collection de paramètres qui contient les paramètres utilisés par la propriété DeleteCommand de l'objet SqlDataSourceView qui est associé au contrôle SqlDataSource.

public:
 property System::Web::UI::WebControls::ParameterCollection ^ DeleteParameters { System::Web::UI::WebControls::ParameterCollection ^ get(); };
[System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)]
public System.Web.UI.WebControls.ParameterCollection DeleteParameters { get; }
[<System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)>]
member this.DeleteParameters : System.Web.UI.WebControls.ParameterCollection
Public ReadOnly Property DeleteParameters As ParameterCollection

Valeur de propriété

ParameterCollection qui contient les paramètres utilisés par la propriété DeleteCommand.

Attributs

Exemples

L’exemple de code suivant montre comment définir le DeleteCommand texte pour supprimer une commande de la base de données Northwind. Initialement, les données sont récupérées à partir de la table Orders et affichées dans un DropDownList contrôle. Vous devez déclarer DeleteParameters explicitement la propriété et appeler la méthode lors de l’utilisation Delete de contrôles liés aux données, tels que DropDownList (contrairement à d’autres contrôles, tels que GridView et DetailsView, qui remplissent automatiquement les paramètres et appellent Delete sur un contrôle de source de données). Dans cet exemple, l’événement OnClick est délégué au gestionnaire d’événements privé OnDelete , qui appelle explicitement la Delete méthode du SqlDataSource contrôle.

<%@Page  Language="C#" %>
<!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 OnDelete(Object sender, EventArgs e) {
    SqlDataSource1.Delete();
}
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
        <form id="form1" runat="server">

            <asp:SqlDataSource
                id="SqlDataSource1"
                runat="server"
                ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
                SelectCommand="SELECT OrderID FROM Orders"
                DeleteCommand="DELETE FROM [Order Details] WHERE OrderID=@OrderID;DELETE FROM Orders WHERE OrderID=@OrderID;">
                <DeleteParameters>
                    <asp:ControlParameter Name="OrderID" ControlId="DropDownList1" PropertyName="SelectedValue" />
                </DeleteParameters>
            </asp:SqlDataSource>

            <asp:DropDownList
                id="DropDownList1"
                runat="server"
                DataTextField="OrderID"
                DataValueField="OrderID"
                DataSourceID="SqlDataSource1">
            </asp:DropDownList>

            <asp:Button
                id="Button1"
                runat="server"
                Text="Delete Order"
                OnClick="OnDelete">
            </asp:Button>

        </form>
    </body>
</html>
<%@Page  Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
 Sub On_Delete(ByVal sender As Object, ByVal e As EventArgs)
    SqlDataSource1.Delete()
 End Sub 'On_Delete
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
    <title>ASP.NET Example</title>
</head>

    <body>
        <form id="form1" runat="server">

            <asp:SqlDataSource
                id="SqlDataSource1"
                runat="server"
                ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
                SelectCommand="SELECT OrderID FROM Orders"
                DeleteCommand="DELETE FROM [Order Details] WHERE OrderID=@OrderID;DELETE FROM Orders WHERE OrderID=@OrderID;">
                <DeleteParameters>
                    <asp:ControlParameter Name="OrderID" ControlId="DropDownList1" PropertyName="SelectedValue" />
                </DeleteParameters>
            </asp:SqlDataSource>

            <asp:DropDownList
                id="DropDownList1"
                runat="server"
                DataTextField="OrderID"
                DataValueField="OrderID"
                DataSourceID="SqlDataSource1">
            </asp:DropDownList>

            <asp:Button
                id="Button1"
                runat="server"
                Text="Delete Order"
                OnClick="On_Delete">
            </asp:Button>

        </form>
    </body>
</html>

Remarques

Si la DeleteCommand propriété contient une requête SQL paramétrable, la DeleteParameters collection contient tous Parameter les objets qui correspondent aux espaces réservés de paramètre dans la chaîne SQL.

Notes

Assurez-vous qu’aucun BoundField contrôle du contrôle lié aux données que vous liez au SqlDataSource contrôle n’a de noms qui correspondent à des noms de paramètre dans la DeleteParameters collection. Les paramètres qui ont le même nom que les champs liés sont exclus de la commande SQL, et une erreur « le paramètre n’a pas été fourni » peut se produire.

Si la ConflictDetection propriété est définie sur la CompareAllValues valeur , les paramètres sont créés pour l’ancienne et la nouvelle valeur des données. Les paramètres des anciennes valeurs sont nommés en fonction de la OldValuesParameterFormatString propriété .

Selon le fournisseur ADO.NET, l’ordre des paramètres dans la DeleteParameters collection peut être important. Les System.Data.OleDb fournisseurs et System.Data.Odbc associent les paramètres dans la collection en fonction de l’ordre dans lequel les paramètres apparaissent dans la requête SQL paramétrable. Le System.Data.SqlClient fournisseur, qui est le fournisseur de ADO.NET par défaut pour le SqlDataSource contrôle, associe les paramètres de la collection en faisant correspondre le nom du paramètre à l’espace réservé dans la requête SQL. Pour plus d’informations sur les requêtes et commandes SQL paramétrables, consultez Utilisation de paramètres avec le contrôle SqlDataSource.

La DeleteParameters propriété récupère la DeleteParameters propriété contenue par l’objet SqlDataSourceView associé au SqlDataSource contrôle .

Important

Les valeurs sont insérées dans les paramètres sans validation, ce qui constitue une menace de sécurité potentielle. Utilisez l’événement Deleting pour valider les valeurs des paramètres avant d’exécuter la requête. Pour plus d’informations, consultez Vue d’ensemble des attaques de script.

S’applique à

Voir aussi