SqlDataSource.DeleteParameters Eigenschaft

Definition

Ruft die Parameterauflistung mit den Parametern ab, die von der DeleteCommand-Eigenschaft des dem SqlDataSourceView-Steuerelement zugeordneten SqlDataSource-Objekts verwendet werden.

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

Eigenschaftswert

Eine ParameterCollection, die die von der DeleteCommand-Eigenschaft verwendeten Parameter enthält.

Attribute

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie der DeleteCommand Text so festgelegt wird, dass eine Bestellung aus der Northwind-Datenbank gelöscht wird. Zunächst werden Daten aus der Tabelle Orders abgerufen und in einem DropDownList -Steuerelement angezeigt. Sie müssen die Eigenschaft explizit deklarieren DeleteParameters und die Delete -Methode aufrufen, wenn Sie datengebundene Steuerelemente verwenden, z DropDownList . B. (im Gegensatz zu anderen Steuerelementen wie GridView und DetailsView, die die Parameter automatisch auffüllen und ein Datenquellensteuerelement aufrufen Delete ). In diesem Beispiel wird das OnClick Ereignis an den privaten OnDelete Ereignishandler delegiert, der explizit die Delete -Methode des SqlDataSource Steuerelements aufruft.

<%@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>

Hinweise

Wenn die DeleteCommand -Eigenschaft eine parametrisierte SQL-Abfrage enthält, enthält die DeleteParameters Auflistung alle Parameter Objekte, die den Parameterplatzhaltern in der SQL-Zeichenfolge entsprechen.

Hinweis

Stellen Sie sicher, dass keine BoundField Steuerelemente im datengebundenen Steuerelement, das Sie an das Steuerelement binden, Über Namen verfügen, die SqlDataSource mit parameternamen in der DeleteParameters Auflistung übereinstimmen. Parameter, die denselben Namen wie gebundene Felder haben, werden vom SQL-Befehl ausgeschlossen, und der Fehler "Parameter wurde nicht angegeben" kann auftreten.

Wenn die ConflictDetection -Eigenschaft auf den CompareAllValues -Wert festgelegt ist, werden die Parameter sowohl für den alten als auch für den neuen Wert der Daten erstellt. Die Parameter für die alten Werte werden gemäß der OldValuesParameterFormatString -Eigenschaft benannt.

Abhängig vom ADO.NET Anbieters kann die Reihenfolge der Parameter in der DeleteParameters Auflistung wichtig sein. Die System.Data.OleDb Anbieter und System.Data.Odbc ordnen die Parameter in der Auflistung entsprechend der Reihenfolge zu, in der die Parameter in der parametrisierten SQL-Abfrage angezeigt werden. Der System.Data.SqlClient Anbieter, der der Standardanbieter ADO.NET für das SqlDataSource Steuerelement ist, ordnet die Parameter in der Auflistung zu, indem er den Namen des Parameters mit dem Platzhalter in der SQL-Abfrage abgleicht. Weitere Informationen zu parametrisierten SQL-Abfragen und -Befehlen finden Sie unter Verwenden von Parametern mit dem SqlDataSource-Steuerelement.

Die DeleteParameters -Eigenschaft ruft die DeleteParameters -Eigenschaft ab, die in dem SqlDataSourceView -Objekt enthalten ist, das dem SqlDataSource Steuerelement zugeordnet ist.

Wichtig

Werte werden ohne Validierung in Parameter eingefügt, was ein potenzielles Sicherheitsrisiko darstellt. Verwenden Sie das Deleting -Ereignis, um Parameterwerte zu überprüfen, bevor Sie die Abfrage ausführen. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe.

Gilt für:

Weitere Informationen