SqlDataSource.DeleteCommand Свойство

Определение

Возвращает или задает SQL-строку, которая используется элементом управления SqlDataSource для удаления данных из основной базы данных.Gets or sets the SQL string that the SqlDataSource control uses to delete data from the underlying database.

public:
 property System::String ^ DeleteCommand { System::String ^ get(); void set(System::String ^ value); };
public string DeleteCommand { get; set; }
member this.DeleteCommand : string with get, set
Public Property DeleteCommand As String

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

SQL-строка, используемая элементом управления SqlDataSource для удаления данных.An SQL string that the SqlDataSource uses to delete data.

Примеры

В следующем примере кода показано, как задать DeleteCommand текст для удаления заказа из таблицы "Заказы базы данных Northwind".The following code example demonstrates how to set the DeleteCommand text to delete an order from the Northwind database Orders table. Данные извлекаются из таблицы Orders и отображаются в GridView элементе управления.Data is retrieved from the Orders table and displayed in a GridView control. Объект GridView автоматически визуализирует true кнопку удаления , если свойствоимеетзначение.AutoGenerateDeleteButtonThe GridView renders a Delete button automatically when the AutoGenerateDeleteButton property is set to true. Кроме того, при **** нажатии GridView кнопки удалить элемент управления DeleteParameters автоматически заполняет коллекцию и вызывает Delete метод.Additionally, when the Delete button is clicked, the GridView control automatically populates the DeleteParameters collection and calls the Delete method. Наконец, поскольку в Delete этом примере кода удаляются данные, добавляется обработчик событий, который пытается создать резервную копию базы данных на диске до выполнения операции.Finally, because this code example deletes data, an event handler is added to attempt to back up the database to disk before the Delete operation is performed.

<%@Page  Language="C#" %>
<%@Import Namespace="System.Data.SqlClient" %>
<!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 OnRecordDeleting(Object source, SqlDataSourceCommandEventArgs e) {    
    // Cancel the delete operation if the checkbox is not checked.
    if (! CheckBox1.Checked) {
        e.Cancel = true;
        Label1.Text = "The command was cancelled because the CheckBox was not checked.";
    }
 }

private void OnRecordDeleted(object source, SqlDataSourceStatusEventArgs e) {
    Label1.Text = e.AffectedRows + " row(s) were deleted";
}
</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"
            DataSourceMode="DataSet"
            ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
            SelectCommand="SELECT * FROM Orders"            
            DeleteCommand="DELETE FROM [Order Details] WHERE OrderID=@OrderID;DELETE FROM Orders WHERE OrderID=@OrderID;"
            OnDeleting="OnRecordDeleting"
            OnDeleted="OnRecordDeleted">
        </asp:SqlDataSource>
        <br />
       <asp:CheckBox 
         id="CheckBox1" 
         runat="server"
         autopostback="true"
         text="Check To Delete Data" />
        <br />
        <br />

        <asp:GridView
            id="GridView1"
            runat="server"
            AutoGenerateColumns="False"
            DataKeyNames="OrderID"
            AutoGenerateDeleteButton="True"
            AllowPaging="True"
            PageSize="20"
            DataSourceID="SqlDataSource1">
            <Columns>
                <asp:BoundField HeaderText="Order ID" DataField="OrderID" />
                <asp:BoundField HeaderText="Customer" DataField="CustomerID" />
                <asp:BoundField HeaderText="Order Placed" DataField="OrderDate" />
                <asp:BoundField HeaderText="Order Shipped" DataField="ShippedDate" />
            </Columns>
        </asp:GridView>

        <asp:Label
            id="Label1"
            runat="server">
        </asp:Label>

    </form>
  </body>
</html>
<%@Page  Language="VB" %>
<%@Import Namespace="System.Data.SqlClient" %>
<!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_Record_Deleting(ByVal source As Object, ByVal e As SqlDataSourceCommandEventArgs)
     ' Cancel the delete operation if the checkbox is not checked.
     If Not CheckBox1.Checked 
            e.Cancel = True
            Label1.Text = "The command was cancelled because the CheckBox was not checked."
     End If

End Sub 'On_Record_Deleting

Sub On_Record_Deleted(ByVal source As Object, ByVal e As SqlDataSourceStatusEventArgs)
    Label1.Text = e.AffectedRows & " row(s) were deleted"

End Sub
    
</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"
            DataSourceMode="DataSet"
            ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
            SelectCommand="SELECT * FROM Orders"
            DeleteCommand="DELETE FROM [Order Details] WHERE OrderID=@OrderID;DELETE FROM Orders WHERE OrderID=@OrderID;"
            OnDeleting="On_Record_Deleting"
            OnDeleted="On_Record_Deleted">
        </asp:SqlDataSource>
        <br />

       <asp:CheckBox 
         id="CheckBox1" 
         runat="server"
         autopostback="true"
         text="Check To Delete Data" />
        <br />
        <br />

        <asp:GridView
            id="GridView1"
            runat="server"
            AutoGenerateColumns="False"
            DataKeyNames="OrderID"
            AutoGenerateDeleteButton="True"
            AllowPaging="True"
            PageSize="20"
            DataSourceID="SqlDataSource1">
            <Columns>
                <asp:BoundField HeaderText="Order ID" DataField="OrderID" />
                <asp:BoundField HeaderText="Customer" DataField="CustomerID" />
                <asp:BoundField HeaderText="Order Placed" DataField="OrderDate" />
                <asp:BoundField HeaderText="Order Shipped" DataField="ShippedDate" />
            </Columns>
        </asp:GridView>

        <asp:Label
            id="Label1"
            runat="server">
        </asp:Label>

    </form>
  </body>
</html>

Комментарии

Объект DeleteCommand представляет SQL-запрос или имя хранимой процедуры и используется Delete методом.The DeleteCommand represents an SQL query or the name of a stored procedure, and is used by the Delete method.

Различные системы баз данных используют различные диалекты SQL, поэтому синтаксис строки SQL зависит от используемого в данный момент поставщика ADO.NET, который определяется свойством ProviderName.Because different database products use different varieties of SQL, the syntax of the SQL string depends on the current ADO.NET provider being used, which is identified by the ProviderName property. Если строка SQL является параметризованным запросом или командой, синтаксис параметра также зависит от используемого поставщика ADO.NET.If the SQL string is a parameterized query or command, the syntax of the parameter also depends on the ADO.NET provider being used. Например, если поставщик является System.Data.SqlClientпоставщиком по умолчанию SqlDataSource для класса, синтаксис параметра имеет '@parameterName'значение.For example, if the provider is the System.Data.SqlClient, which is the default provider for the SqlDataSource class, the syntax of the parameter is '@parameterName'. Однако если поставщику задано System.Data.Odbc значение или System.Data.OleDb, заполнитель параметра имеет '?'значение.However, if the provider is set to the System.Data.Odbc or System.Data.OleDb, the placeholder of the parameter is '?'. Дополнительные сведения о параметризованных запросах SQL и командах см. в разделе Использование параметров с элементом управления SqlDataSource.For more information about parameterized SQL queries and commands, see Using Parameters with the SqlDataSource Control.

DeleteCommand Свойство может быть строкой SQL или именем хранимой процедуры, если база данных поддерживает хранимые процедуры.The DeleteCommand property can be an SQL string or the name of a stored procedure, if the database supports stored procedures.

Свойство делегирует DeleteCommand SqlDataSource свойство SqlDataSourceView объекта, связанного с элементом управления. DeleteCommandThe DeleteCommand property delegates to the DeleteCommand property of the SqlDataSourceView object that is associated with the SqlDataSource control.

Важно!

В целях DeleteCommand безопасности свойство не хранится в состоянии представления.For security purposes, the DeleteCommand property is not stored in view state. Так как можно декодировать содержимое состояния представления на клиенте, хранение конфиденциальной информации о структуре базы данных в состоянии представления может привести к уязвимости раскрытия информации.Because it is possible to decode the contents of view state on the client, storing sensitive information about the database structure in view state could result in an information disclosure vulnerability.

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

Дополнительно