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 。 在使用数据绑定控件(如 DropDownList ()时,必须显式声明 DeleteParameters 属性并调用 Delete 方法,这与其他控件(如 GridViewDetailsView)不同,后者会自动填充参数,并在数据源控件) 调用 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值生成 对象DbCommand,然后针对基础数据库执行 DbCommandDeleteCommand

适用于

另请参阅