SqlDataSource.DeleteParameters Właściwość

Definicja

Pobiera kolekcję parametrów zawierającą parametry używane przez DeleteCommand właściwość z SqlDataSourceView obiektu skojarzonego z kontrolką 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

Wartość właściwości

Element ParameterCollection zawierający parametry używane przez DeleteCommand właściwość .

Atrybuty

Przykłady

W poniższym przykładzie kodu pokazano, jak ustawić tekst w DeleteCommand celu usunięcia zamówienia z bazy danych Northwind. Początkowo dane są pobierane z tabeli Orders i wyświetlane w kontrolce DropDownList . Należy jawnie zadeklarować DeleteParameters właściwość i wywołać metodę Delete podczas korzystania z kontrolek powiązanych z danymi, takich jak (w przeciwieństwie do innych kontrolek, takich jak DropDownListGridView i DetailsView, które automatycznie wypełniają parametry i wywołujeją Delete kontrolkę źródła danych). W tym przykładzie OnClick zdarzenie jest delegowane do procedury obsługi zdarzeń prywatnych OnDelete , która jawnie wywołuje Delete metodę kontrolki SqlDataSource .

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

Uwagi

DeleteCommand Jeśli właściwość zawiera sparametryzowane zapytanie SQL, DeleteParameters kolekcja zawiera wszystkie Parameter obiekty, które odpowiadają symbolom zastępczym parametru w ciągu SQL.

Uwaga

Upewnij się, że żadne BoundField kontrolki w kontrolce powiązanej z danymi nie mają nazw pasujących do SqlDataSource nazw parametrów w kolekcji DeleteParameters . Parametry, które mają taką samą nazwę, jak pola powiązane, są wykluczone z polecenia SQL, a błąd "parametr nie został podany" może spowodować wystąpienie błędu.

Jeśli właściwość jest ustawiona ConflictDetectionCompareAllValues na wartość, parametry są tworzone zarówno dla starych, jak i nowych wartości danych. Parametry starych wartości są nazwane zgodnie z właściwością OldValuesParameterFormatString .

W zależności od dostawcy ADO.NET kolejność parametrów w DeleteParameters kolekcji może być ważna. Dostawcy System.Data.OleDb i System.Data.Odbc kojarzą parametry w kolekcji zgodnie z kolejnością wyświetlania parametrów w sparametryzowanym zapytaniu SQL. System.Data.SqlClient Dostawca, który jest domyślnym dostawcą ADO.NET dla SqlDataSource kontrolki, kojarzy parametry w kolekcji, pasując do nazwy parametru z symbolem zastępczym w zapytaniu SQL. Aby uzyskać więcej informacji na temat sparametryzowanych zapytań SQL i poleceń, zobacz Using Parameters with the SqlDataSource Control (Używanie parametrów z kontrolką SqlDataSource).

Właściwość DeleteParameters pobiera DeleteParameters właściwość zawartą przez SqlDataSourceView obiekt skojarzony z kontrolką SqlDataSource .

Ważne

Wartości są wstawiane do parametrów bez walidacji, co jest potencjalnym zagrożeniem bezpieczeństwa. Użyj zdarzenia, Deleting aby zweryfikować wartości parametrów przed wykonaniem zapytania. Aby uzyskać więcej informacji, zobacz Script Exploits Overview (Omówienie luk w zabezpieczeniach skryptów).

Dotyczy

Zobacz też