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集合包含与 SQL 字符串中的参数占位符对应的任何Parameter对象。

注意

请确保绑定到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 控件使用参数

属性 DeleteParameters 检索 DeleteParametersSqlDataSourceView 与 控件关联的 对象包含的属性 SqlDataSource

重要

值在没有验证的情况下插入到参数中,这是一种潜在的安全威胁。 在执行查询之前, Deleting 使用 事件验证参数值。 有关详细信息,请参阅脚本侵入概述

适用于

另请参阅