SqlDataSourceCommandEventArgsとは? わかりやすく解説

SqlDataSourceCommandEventArgs クラス

メモ : このクラスは、.NET Framework version 2.0 で新しく追加されたものです。

SqlDataSource コントロールの Updating イベント、Deleting イベント、および Inserting イベントのデータを提供します。

名前空間: System.Web.UI.WebControls
アセンブリ: System.Web (system.web.dll 内)
構文構文

Public Class SqlDataSourceCommandEventArgs
    Inherits CancelEventArgs
Dim instance As SqlDataSourceCommandEventArgs
public class SqlDataSourceCommandEventArgs
 : CancelEventArgs
public ref class SqlDataSourceCommandEventArgs
 : public CancelEventArgs
public class SqlDataSourceCommandEventArgs
 extends CancelEventArgs
public class SqlDataSourceCommandEventArgs
 extends CancelEventArgs
解説解説

イベント ハンドラ デリゲートを追加して、Updating、Inserting、Deleting の各イベントを処理することにより、別途プリプロセスを実行したり、データベース コマンドそのものをキャンセルしたりできます。

SqlDataSourceCommandEventArgs クラスは CancelEventArgs クラスから派生しているため、Cancel プロパティを true に設定することによって、保留中の SqlDataSource データベース コマンドをキャンセルできます。Command プロパティが公開している DbCommand オブジェクトにアクセスすることで、コマンドを実行する前に、CommandText、Parameters コレクション、および、その他のコマンド プロパティをチェックし、必要に応じてプロパティを操作できます。

SqlDataSourceCommandEventArgs クラスを、OnUpdating メソッド、OnInserting メソッド、および OnDeleting メソッドで使用することにより、SqlDataSource データベース コマンドに実行前にアクセスできます。SqlDataSource コントロールは、データ操作の過程で、基になるデータ オブジェクトを操作する際に利用できる、数多くのイベントを公開しています。次の表は、SqlDataSource コントロールを使用したデータ操作の一連の流れに対応するさまざまなイベントをわかりやすく紹介するために、各種のイベントと、個々のイベントに対応する EventArgs、およびイベント ハンドラ クラスをまとめたものです。

イベント

イベント引数

イベント ハンドラ

Selecting はデータが取得される前に発生します。

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>
.NET Framework のセキュリティ.NET Framework のセキュリティ
継承階層継承階層
System.Object
   System.EventArgs
     System.ComponentModel.CancelEventArgs
      System.Web.UI.WebControls.SqlDataSourceCommandEventArgs
         System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
SqlDataSourceCommandEventArgs メンバ
System.Web.UI.WebControls 名前空間
SqlDataSourceCommandEventHandler
SqlDataSourceView
SqlDataSource クラス
OnUpdating
OnInserting
OnDeleting

SqlDataSourceCommandEventArgs コンストラクタ

メモ : このコンストラクタは、.NET Framework version 2.0 で新しく追加されたものです。

データベース コマンド オブジェクトを指定して、SqlDataSourceCommandEventArgs クラスの新しいインスタンスを初期化します。

名前空間: System.Web.UI.WebControls
アセンブリ: System.Web (system.web.dll 内)
構文構文

Public Sub New ( _
    command As DbCommand _
)
Dim command As DbCommand

Dim instance As New SqlDataSourceCommandEventArgs(command)
public SqlDataSourceCommandEventArgs (
    DbCommand command
)
public:
SqlDataSourceCommandEventArgs (
    DbCommand^ command
)
public SqlDataSourceCommandEventArgs (
    DbCommand command
)
public function SqlDataSourceCommandEventArgs
 (
    command : DbCommand
)

パラメータ

command

キャンセル可能な Update コマンド、Insert コマンド、または Delete コマンドを表す DbCommand オブジェクト。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
SqlDataSourceCommandEventArgs クラス
SqlDataSourceCommandEventArgs メンバ
System.Web.UI.WebControls 名前空間
Update
Insert
Delete

SqlDataSourceCommandEventArgs プロパティ


パブリック プロパティパブリック プロパティ

参照参照

関連項目

SqlDataSourceCommandEventArgs クラス
System.Web.UI.WebControls 名前空間
SqlDataSourceCommandEventHandler
SqlDataSourceView
SqlDataSource クラス
OnUpdating
OnInserting
OnDeleting

SqlDataSourceCommandEventArgs メソッド


SqlDataSourceCommandEventArgs メンバ

SqlDataSource コントロールの Updating イベント、Deleting イベント、および Inserting イベントのデータを提供します。

SqlDataSourceCommandEventArgs データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド SqlDataSourceCommandEventArgs データベース コマンド オブジェクトを指定して、SqlDataSourceCommandEventArgs クラスの新しいインスタンスを初期化します。
パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

SqlDataSourceCommandEventArgs クラス
System.Web.UI.WebControls 名前空間
SqlDataSourceCommandEventHandler
SqlDataSourceView
SqlDataSource クラス
OnUpdating
OnInserting
OnDeleting



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「SqlDataSourceCommandEventArgs」の関連用語

SqlDataSourceCommandEventArgsのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



SqlDataSourceCommandEventArgsのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS