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 Используйте событие для проверки значений параметров перед выполнением запроса. Дополнительные сведения см. в разделе "Обзор эксплойтов скриптов".