通过


SqlDataSource.Delete 方法

定义

使用 DeleteCommand SQL 字符串和集合中的任何 DeleteParameters 参数执行删除操作。

public:
 int Delete();
public int Delete();
member this.Delete : unit -> int
Public Function Delete () As Integer

返回

一个值,表示从基础数据库中删除的行数。

例外

无法 SqlDataSource 与基础数据源建立连接。

示例

下面的代码示例演示如何设置 DeleteCommand 文本以从 Northwind 数据库删除订单。 最初,从 Orders 表中检索数据,并显示在控件 DropDownList 中。 在使用数据绑定控件时,必须显式声明 DeleteParameters 属性并调用 Delete 方法,例如 DropDownList (与其他控件不同,例如 GridView ,此类 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>

注解

在执行删除操作之前, OnDeleting 将调用该方法以引发 Deleting 事件。 可以处理此事件来检查参数的值,并在删除操作之前执行任何预处理。

操作完成后, OnDeleted 将调用该方法以引发 Deleted 事件。 可以处理此事件来检查任何返回值和错误代码,以及执行任何后期处理。

提供 Delete 该方法以编程方式访问 Delete 该方法。 SqlDataSource如果控件与数据绑定控件相关联,则数据绑定控件会自动调用 Delete 方法。

该方法Delete委托给DeleteSqlDataSource控件关联的对象的方法SqlDataSourceView。 若要执行该操作,将使用SqlDataSourceView文本和任何关联DeleteParameters值生成对象DbCommandDeleteCommand,然后针对基础数据库执行DbCommand该对象。

适用于

另请参阅