SqlDataSource.DeleteParameters 屬性

定義

取得參數集合,包含與 DeleteCommand 控制項相關聯之 SqlDataSourceView 物件 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

屬性值

ParameterCollection,包含 DeleteCommand 屬性所使用的參數。

屬性

範例

下列程式碼範例示範如何設定 DeleteCommand 文字以從 Northwind 資料庫刪除訂單。 一開始,資料會從 Orders 資料表擷取,並顯示在 控制項中 DropDownList 。 使用資料繫結控制項時,您必須明確宣告 DeleteParameters 屬性並呼叫 Delete 方法,例如 DropDownList (與其他控制項不同,例如 GridViewDetailsView ,這會自動填入參數,並在資料來源控制項上呼叫 Delete) 。 在此範例中 OnClick ,事件會委派給私 OnDelete 用事件處理常式,以明確呼叫 Delete 控制項的 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>

備註

DeleteCommand如果屬性包含參數化 SQL 查詢, DeleteParameters 集合會包含任何 Parameter 對應至 SQL 字串中參數預留位置的物件。

注意

請確定您系結至 SqlDataSource 控制項的資料繫結控制項中沒有任何 BoundField 控制項具有符合集合中 DeleteParameters 任何參數名稱的名稱。 與系結欄位名稱相同的參數會從 SQL 命令中排除,而且可能會導致「未提供參數」錯誤。

ConflictDetection如果屬性設定為 CompareAllValues 值,則會為數據的舊值和新值建立參數。 舊值的參數會根據 OldValuesParameterFormatString 屬性來命名。

視 ADO.NET 提供者而定,集合中的 DeleteParameters 參數順序可能很重要。 System.Data.OleDbSystem.Data.Odbc 提供者會根據參數出現在參數化 SQL 查詢中的順序,關聯集合中的參數。 System.Data.SqlClient提供者是控制項的預設 ADO.NET 提供者 SqlDataSource ,會比對參數的名稱與 SQL 查詢中的預留位置,使集合中的參數產生關聯。 如需參數化 SQL 查詢和命令的詳細資訊,請參閱 搭配 SqlDataSource 控制項使用參數

屬性 DeleteParametersDeleteParameters 擷取與 控制項相關聯 SqlDataSource 之 物件所包含的 SqlDataSourceView 屬性。

重要

值會插入參數中,而不需驗證,這是潛在的安全性威脅。 在執行查詢之前, Deleting 請使用 事件來驗證參數值。 如需詳細資訊,請參閱 Script Exploits Overview (指令碼攻擊概觀)。

適用於

另請參閱