次の方法で共有


SqlDataSource.Delete メソッド

定義

DeleteCommand SQL 文字列と、DeleteParameters コレクション内のすべてのパラメーターを使用して削除操作を実行します。

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

戻り値

基になるデータベースから削除された行の数を表す値。

例外

SqlDataSourceは、基になるデータ ソースとの接続を確立できません。

次のコード例では、Northwind データベースから注文を削除するように DeleteCommand テキストを設定する方法を示します。 最初に、データは Orders テーブルから取得され、 DropDownList コントロールに表示されます。 DeleteParameters プロパティを明示的に宣言し、DropDownListなどのデータ バインド コントロールを使用する場合は、Delete メソッドを呼び出す必要があります (GridViewDetailsViewなどの他のコントロールとは異なり、パラメーターが自動的に設定され、データ ソース コントロールで Delete メソッドが呼び出されます)。 この例では、OnClick イベントは、SqlDataSource コントロールのDelete メソッドを明示的に呼び出すプライベート OnDelete イベント ハンドラーに委任されます。

<%@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 イベントが発生します。 このイベントを処理して、パラメーターの値を調べ、削除操作の前に前処理を実行できます。

操作が完了すると、Deleted イベントを発生させるために OnDeleted メソッドが呼び出されます。 このイベントを処理して、戻り値とエラー コードを調べ、後処理を実行できます。

Delete メソッドは、Delete メソッドにプログラムでアクセスするために提供されます。 SqlDataSource コントロールがデータ バインド コントロールに関連付けられている場合、データ バインド コントロールは自動的に Delete メソッドを呼び出します。

Delete メソッドは、SqlDataSource コントロールに関連付けられているSqlDataSourceView オブジェクトのDelete メソッドにデリゲートします。 操作を実行するために、SqlDataSourceViewは、DeleteCommand テキストと関連付けられたDeleteParameters値を使用してDbCommand オブジェクトをビルドし、基になるデータベースに対してDbCommandを実行します。

適用対象

こちらもご覧ください