SqlDataSourceView.DeleteParameters 属性

定义

获取参数集合,该集合包含由 DeleteCommand 属性使用的参数。Gets the parameters collection containing the parameters that are used by the DeleteCommand property.

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

ParameterCollection,它包含 DeleteCommand 属性所使用的参数。A ParameterCollection that contains the parameters used by the DeleteCommand property.

属性

示例

下面的代码示例演示如何设置 DeleteCommand 文本以删除 Northwind 数据库中的订单。The following code example demonstrates how to set the DeleteCommand text to delete an order from the Northwind database. 最初,从 Orders 表中检索数据,并在控件中显示数据 DropDownListInitially, data is retrieved from the Orders table and displayed in a DropDownList control. DeleteParameters使用数据绑定控件(如 (不同于控件)时,必须显式声明属性并调用方法,如 Delete DropDownList GridViewDetailsView ,后者会自动填充参数并 Delete) 数据源控件上调用方法。You must explicitly declare the DeleteParameters property and call the Delete method when using data-bound controls, such as the DropDownList (unlike controls, such as the GridView and DetailsView, which automatically populate the parameters and call the Delete method on a data source control). 在此示例中,将 OnClick 事件委托给专用 OnDeleted 事件处理程序,该处理程序显式调用 Delete 控件的方法 SqlDataSourceIn this example, the OnClick event is delegated to the private OnDeleted event handler, which explicitly calls the Delete method of the SqlDataSource control.

<%@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 字符串中的参数占位符对应的任何对象。If the DeleteCommand property contains a parameterized SQL query, the DeleteParameters collection contains any Parameter objects that correspond to the parameter placeholders in the SQL string.

参数名称可能会受到属性的影响 OldValuesParameterFormatString ; 具体而言,如果名称标识主键(如使用数据绑定控件的属性指定的密钥), DataKeyNames 或在将属性设置为该值的 delete 和 update 方案中,并将 ConflictDetection CompareAllValues 一组 oldValues 传递给相应的数据方法。Parameter names might be affected by the OldValuesParameterFormatString property; specifically, if the name identifies a primary key, such as a key that is specified using the DataKeyNames property of a data-bound control, or in delete and update scenarios in which the ConflictDetection property is set to the CompareAllValues value and a set of oldValues is passed to the corresponding data method. 在这种情况下,格式字符串将应用于集合中的每个参数名称 oldValuesIn this case, the format string is applied to each parameter name in the oldValues collection.

根据 ADO.NET 提供程序,集合中参数的顺序 DeleteParameters 可能很重要。Depending on the ADO.NET provider, the order of the parameters in the DeleteParameters collection might be important. System.Data.OleDbSystem.Data.Odbc 提供程序根据参数在参数化 SQL 查询中出现的顺序来关联集合中的参数。The System.Data.OleDb and System.Data.Odbc providers associate the parameters in the collection according to the order that the parameters appear in the parameterized SQL query. System.Data.SqlClient提供程序是控件的默认 ADO.NET 提供程序,它 SqlDataSource 通过将参数名称与 SQL 查询中的占位符匹配来关联集合中的参数。The System.Data.SqlClient provider, which is the default ADO.NET provider for the SqlDataSource control, associates the parameters in the collection by matching the name of the parameter with the placeholder in the SQL query. 有关参数化 SQL 查询和命令的详细信息,请参阅 将参数与 SqlDataSource 控件一起使用For more information on parameterized SQL queries and commands, see Using Parameters with the SqlDataSource Control.

适用于

另请参阅