SqlDataSource.Delete メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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 メソッドを呼び出す必要があります (GridViewやDetailsViewなどの他のコントロールとは異なり、パラメーターが自動的に設定され、データ ソース コントロールで 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を実行します。