Прочитать на английском

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


SqlDataSource.DeleteParameters Свойство

Определение

Возвращает коллекцию, содержащую параметры, используемые свойством DeleteCommand объекта SqlDataSourceView, связанного с элементом управления SqlDataSource.

C#
[System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)]
public System.Web.UI.WebControls.ParameterCollection DeleteParameters { get; }

Значение свойства

Коллекция ParameterCollection, содержащая параметры, используемые свойством DeleteCommand.

Атрибуты

Примеры

В следующем примере кода показано, как задать DeleteCommand текст для удаления заказа из базы данных Northwind. Изначально данные извлекаются из таблицы Orders и отображаются в элементе DropDownList управления . Необходимо явно объявить DeleteParameters свойство и вызвать Delete метод при использовании элементов управления с привязкой к данным, таких как DropDownList (в отличие от других элементов управления, таких как GridView и DetailsView, которые автоматически заполняют параметры и вызывают Delete элемент управления источником данных). В этом примере OnClick событие делегируется частному OnDelete обработчику событий, который явно вызывает Delete метод SqlDataSource элемента управления .

ASP.NET (C#)
<%@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>

Комментарии

DeleteCommand Если свойство содержит параметризованный SQL-запрос, DeleteParameters коллекция содержит все Parameter объекты, соответствующие заполнителям параметров в строке SQL.

Примечание

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

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

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

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

Важно!

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

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

Продукт Версии
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

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