SqlDataSourceCommandEventArgs クラス
アセンブリ: System.Web (system.web.dll 内)


イベント ハンドラ デリゲートを追加して、Updating、Inserting、Deleting の各イベントを処理することにより、別途プリプロセスを実行したり、データベース コマンドそのものをキャンセルしたりできます。
SqlDataSourceCommandEventArgs クラスは CancelEventArgs クラスから派生しているため、Cancel プロパティを true に設定することによって、保留中の SqlDataSource データベース コマンドをキャンセルできます。Command プロパティが公開している DbCommand オブジェクトにアクセスすることで、コマンドを実行する前に、CommandText、Parameters コレクション、および、その他のコマンド プロパティをチェックし、必要に応じてプロパティを操作できます。
SqlDataSourceCommandEventArgs クラスを、OnUpdating メソッド、OnInserting メソッド、および OnDeleting メソッドで使用することにより、SqlDataSource データベース コマンドに実行前にアクセスできます。SqlDataSource コントロールは、データ操作の過程で、基になるデータ オブジェクトを操作する際に利用できる、数多くのイベントを公開しています。次の表は、SqlDataSource コントロールを使用したデータ操作の一連の流れに対応するさまざまなイベントをわかりやすく紹介するために、各種のイベントと、個々のイベントに対応する EventArgs、およびイベント ハンドラ クラスをまとめたものです。
SqlDataSourceSelectingEventArgs | SqlDataSourceSelectingEventHandler | |
Inserting、Updating、および、Deleting は、それぞれ、挿入、更新、削除の各操作が実行される前に発生します。 | SqlDataSourceCommandEventArgs | SqlDataSourceCommandEventHandler |
Selected、Inserted、Updated、Deleted は、それぞれ、データの取得、挿入、更新、削除の各操作が完了した後で発生します。 | SqlDataSourceStatusEventArgs | SqlDataSourceStatusEventHandler |

DropDownList コントロールで、Microsoft SQL Server データベースから取得したデータを表示し、TextBox コントロールを使用してレコードを更新する方法を次のコード例に示します。この例は、SqlDataSource コントロールを使用したデータの更新時に、DbTransaction オブジェクトを使用してトランザクションのコンテキストを追加する方法を示しています。
<%@Page Language="VB" %> <%@Import Namespace="System.Data" %> <%@Import Namespace="System.Data.Common" %> <%@Import Namespace="System.Diagnostics" %> <!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_Click(ByVal source As Object, ByVal e As EventArgs) SqlDataSource1.Update() End Sub 'On_Click Sub On_Sql_Updating(ByVal source As Object, ByVal e As SqlDataSourceCommandEventArgs) Dim command as DbCommand Dim connection as DbConnection Dim transaction as DbTransaction command = e.Command connection = command.Connection connection.Open() transaction = connection.BeginTransaction() command.Transaction = transaction End Sub 'On_Sql_Updating Sub On_Sql_Updated(ByVal source As Object, ByVal e As SqlDataSourceStatusEventArgs) Dim command As DbCommand Dim transaction As DbTransaction command = e.Command transaction = command.Transaction ' In this code example the OtherProcessSucceeded variable represents ' the outcome of some other process that occurs whenever the data is ' updated, and must succeed for the data change to be committed. For ' simplicity, we set this value to true. Dim OtherProcessSucceeded as Boolean = True If (OtherProcessSucceeded) Then transaction.Commit() Label2.Text="The record was updated successfully!" Else transaction.Rollback() Label2.Text="The record was not updated." End If End Sub ' On_Sql_Updated </SCRIPT> <HTML> <BODY> <FORM runat="server"> <asp:SqlDataSource id="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MyNorthwind%>" SelectCommand="SELECT EmployeeID, LastName, Address FROM Employees" UpdateCommand="UPDATE Employees SET Address=@Address WHERE EmployeeID=@EmployeeID" OnUpdating="On_Sql_Updating" OnUpdated ="On_Sql_Updated"> <UpdateParameters> <asp:ControlParameter Name="Address" ControlId="TextBox1" PropertyName="Text"/> <asp:ControlParameter Name="EmployeeID" ControlId="DropDownList1" PropertyName="SelectedValue"/> </UpdateParameters> </asp:SqlDataSource> <asp:DropDownList id="DropDownList1" runat="server" DataTextField="LastName" DataValueField="EmployeeID" DataSourceID="SqlDataSource1"> </asp:DropDownList> <P> <asp:Label id="Label1" runat="server" Text="Enter a new address for the selected user." /> <asp:TextBox id="TextBox1" runat="server" /> <asp:Button id="Submit" runat="server" Text="Submit" OnClick="On_Click" /> <P><asp:Label id="Label2" runat="server" Text="" /> </FORM> </BODY> </HTML>
<%@Page Language="C#" %> <%@Import Namespace="System.Data" %> <%@Import Namespace="System.Data.Common" %> <%@Import Namespace="System.Data.SqlClient" %> <%@Import Namespace="System.Diagnostics" %> <!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 On_Click(Object source, EventArgs e) { SqlDataSource1.Update(); } private void OnSqlUpdating(Object source, SqlDataSourceCommandEventArgs e) { DbCommand command = e.Command; DbConnection cx = command.Connection; cx.Open(); DbTransaction tx = cx.BeginTransaction(); command.Transaction = tx; } private void OnSqlUpdated(Object source, SqlDataSourceStatusEventArgs e) { DbCommand command = e.Command; DbTransaction tx = command.Transaction; // In this code example the OtherProcessSucceeded variable represents // the outcome of some other process that occurs whenever the data is // updated, and must succeed for the data change to be committed. For // simplicity, we set this value to true. bool OtherProcessSucceeded = true; if (OtherProcessSucceeded) { tx.Commit(); Label2.Text="The record was updated successfully!"; } else { tx.Rollback(); Label2.Text="The record was not updated."; } } </SCRIPT> <HTML> <BODY> <FORM runat="server"> <asp:SqlDataSource id="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MyNorthwind%>" SelectCommand="SELECT EmployeeID, LastName, Address FROM Employees" UpdateCommand="UPDATE Employees SET Address=@Address WHERE EmployeeID=@EmployeeID" OnUpdating="OnSqlUpdating" OnUpdated ="OnSqlUpdated"> <UpdateParameters> <asp:ControlParameter Name="Address" ControlId="TextBox1" PropertyName="Text"/> <asp:ControlParameter Name="EmployeeID" ControlId="DropDownList1" PropertyName="SelectedValue"/> </UpdateParameters> </asp:SqlDataSource> <asp:DropDownList id="DropDownList1" runat="server" DataTextField="LastName" DataValueField="EmployeeID" DataSourceID="SqlDataSource1"> </asp:DropDownList> <P> <asp:Label id="Label1" runat="server" Text="Enter a new address for the selected user." /> <asp:TextBox id="TextBox1" runat="server" /> <asp:Button id="Submit" runat="server" Text="Submit" OnClick="On_Click" /> <P><asp:Label id="Label2" runat="server" Text="" /> </FORM> </BODY> </HTML>
<%@Page Language="VJ#" %> <%@Import Namespace="System.Data" %> <%@Import Namespace="System.Data.Common" %> <%@Import Namespace="System.Diagnostics" %> <!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 On_Click(Object source, System.EventArgs e) { try { SqlDataSource1.Update(); } catch (System.Exception except) { // Handle Exception } Label2.set_Text("The record was updated successfully!"); } //On_Click private void OnSqlUpdate(Object source, SqlDataSourceCommandEventArgs e) { // Log the command in the Event Log on the Web server. String logInfo = e.get_Command().get_CommandText() + " is being submitted to the database."; IEnumerator ie = e.get_Command().get_Parameters().GetEnumerator(); while (ie.MoveNext()) { DbParameter param = ((DbParameter)(ie.get_Current())); logInfo = logInfo + " " + param.get_ParameterName()+ "=" + param.get_Value(); } EventLog log = new EventLog(); log.set_Log("Application"); log.set_Source("ASP.NET Example"); log.WriteEntry(logInfo); } //OnSqlUpdate </SCRIPT> <HTML> <BODY> <FORM runat="server"> <asp:SqlDataSource id="SqlDataSource1" runat="server" ConnectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;" SelectCommand="SELECT EmployeeID, LastName, Address FROM Employees" UpdateCommand="UPDATE Employees SET Address=@Address WHERE EmployeeID=@EmployeeID" OnUpdating="OnSqlUpdate"> <UpdateParameters> <asp:ControlParameter Name="Address" ControlId="TextBox1" PropertyName="Text"/> <asp:ControlParameter Name="EmployeeID" ControlId="DropDownList1" PropertyName="SelectedValue"/> </UpdateParameters> </asp:SqlDataSource> <asp:DropDownList id="DropDownList1" runat="server" DataTextField="LastName" DataValueField="EmployeeID" DataSourceID="SqlDataSource1"> </asp:DropDownList> <P> <asp:Label id="Label1" runat="server" Text="Enter a new address for the selected user." /> <asp:TextBox id="TextBox1" runat="server" /> <asp:Button id="Submit" runat="server" Text="Submit" OnClick="On_Click" /> <P><asp:Label id="Label2" runat="server" Text="" /> </FORM> </BODY> </HTML>


System.EventArgs
System.ComponentModel.CancelEventArgs
System.Web.UI.WebControls.SqlDataSourceCommandEventArgs
System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


SqlDataSourceCommandEventArgs コンストラクタ
アセンブリ: System.Web (system.web.dll 内)


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


SqlDataSourceCommandEventArgs プロパティ

名前 | 説明 | |
---|---|---|
![]() | Cancel | イベントをキャンセルするかどうかを示す値を取得または設定します。 ( CancelEventArgs から継承されます。) |
![]() | Command | 保留中のデータベース コマンドを取得します。 |

SqlDataSourceCommandEventArgs メソッド

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

SqlDataSourceCommandEventArgs メンバ
SqlDataSource コントロールの Updating イベント、Deleting イベント、および Inserting イベントのデータを提供します。
SqlDataSourceCommandEventArgs データ型で公開されるメンバを以下の表に示します。

名前 | 説明 | |
---|---|---|
![]() | SqlDataSourceCommandEventArgs | データベース コマンド オブジェクトを指定して、SqlDataSourceCommandEventArgs クラスの新しいインスタンスを初期化します。 |

名前 | 説明 | |
---|---|---|
![]() | Cancel | イベントをキャンセルするかどうかを示す値を取得または設定します。(CancelEventArgs から継承されます。) |
![]() | Command | 保留中のデータベース コマンドを取得します。 |

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

Weblioに収録されているすべての辞書からSqlDataSourceCommandEventArgsを検索する場合は、下記のリンクをクリックしてください。

- SqlDataSourceCommandEventArgsのページへのリンク