SqlDataSource.DeleteParameters Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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ć DeleteCommand tekst w celu usunięcia zamówienia z bazy danych Northwind. Początkowo dane są pobierane z tabeli Orders (Zamówienia) 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 DropDownList (w przeciwieństwie do innych kontrolek, takich jak GridView 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 prywatnej OnDelete
procedury obsługi zdarzeń, 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 odpowiadające symbolom zastępczym parametru w ciągu SQL.
Uwaga
Upewnij się, że żadne BoundField kontrolki w powiązanej z danymi kontrolce SqlDataSource powiązanej z kontrolką mają nazwy zgodne z nazwami 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ć.
ConflictDetection Jeśli właściwość jest ustawiona CompareAllValues 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ą, w której parametry są wyświetlane 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 za pomocą kontrolki SqlDataSource).
Właściwość DeleteParameters pobiera DeleteParameters właściwość, która jest zawarta 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. Deleting Użyj zdarzenia, aby zweryfikować wartości parametrów przed wykonaniem zapytania. Aby uzyskać więcej informacji, zobacz Omówienie luk w zabezpieczeniach skryptów.