Поделиться через


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 метод при использовании элементов управления с привязкой к данным, таких как (в отличие от других элементов управления, таких как DropDownListGridView и DetailsView, которые автоматически заполняют параметры и вызывают 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.

Замечание

Убедитесь, что BoundField никакие элементы управления, привязанные к SqlDataSource данным, не имеют имен, соответствующих именам параметров в DeleteParameters коллекции. Параметры, имеющие то же имя, что и привязанные поля, исключаются из команды SQL, а ошибка "параметр не указана" может привести к возникновению ошибки.

ConflictDetection Если для свойства задано CompareAllValues значение, параметры создаются как для старых, так и для новых значений данных. Параметры для старых значений именуются в соответствии со свойством OldValuesParameterFormatString .

В зависимости от поставщика ADO.NET порядок параметров в DeleteParameters коллекции может быть важным. System.Data.Odbc Поставщики System.Data.OleDb связывают параметры в коллекции в соответствии с порядком, в котором параметры отображаются в параметризованном SQL-запросе. Поставщик System.Data.SqlClient , являющийся поставщиком ADO.NET по умолчанию для SqlDataSource элемента управления, связывает параметры в коллекции, сопоставляя имя параметра с заполнителем в SQL-запросе. Дополнительные сведения о параметризованных запросах и командах SQL см. в разделе "Использование параметров" с элементом управления SqlDataSource.

Свойство DeleteParameters извлекает DeleteParameters свойство, содержащееся SqlDataSourceView объектом, связанным с элементом SqlDataSource управления.

Это важно

Значения вставляются в параметры без проверки, что является потенциальной угрозой безопасности. Deleting Используйте событие для проверки значений параметров перед выполнением запроса. Дополнительные сведения см. в разделе "Обзор эксплойтов скриптов".

Применяется к

См. также раздел