次の方法で共有


SqlRowUpdatedEventArgs クラス

RowUpdated イベントのデータを提供します。このクラスは継承できません。

この型のすべてのメンバの一覧については、SqlRowUpdatedEventArgs メンバ を参照してください。

System.Object
   System.EventArgs
      System.Data.Common.RowUpdatedEventArgs
         System.Data.SqlClient.SqlRowUpdatedEventArgs

NotInheritable Public Class SqlRowUpdatedEventArgs
   Inherits RowUpdatedEventArgs
[C#]
public sealed class SqlRowUpdatedEventArgs : RowUpdatedEventArgs
[C++]
public __gc __sealed class SqlRowUpdatedEventArgs : public
   RowUpdatedEventArgs
[JScript]
public class SqlRowUpdatedEventArgs extends RowUpdatedEventArgs

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

RowUpdated イベントは、行に対する Update が完了したときに発生します。

Update を使用すると、データ行が更新されるたびに 2 つのイベントが発生します。次の順序で処理が実行されます。

  1. DataRow 内の値が、パラメータ値に移動されます。
  2. OnRowUpdating イベントが発生します。
  3. コマンドが実行されます。
  4. コマンドが FirstReturnedRecord に設定されている場合は、最初に返された結果が DataRow に格納されます。
  5. 出力パラメータがある場合は、それが DataRow に格納されます。
  6. OnRowUpdated イベントが発生します。
  7. AcceptChanges が呼び出されます。

使用例

[Visual Basic, C#, C++] RowUpdating イベントと RowUpdated イベントを使用する方法を次の例に示します。

[Visual Basic, C#, C++] RowUpdating イベントは、次の出力を返します。

[Visual Basic, C#, C++] イベント引数: (command=System.Data.SqlClient.SqlCommand commandType=2 status=0)

[Visual Basic, C#, C++] RowUpdated イベントは、次の出力を返します。

[Visual Basic, C#, C++] イベント引数: (command=System.Data.SqlClient.SqlCommand commandType=2 recordsAffected=1 row=System.Data.DataRow[37] status=0)

 
' handler for RowUpdating event
Protected Shared Sub OnRowUpdating(sender As Object, e As SqlRowUpdatingEventArgs)
    PrintEventArgs(e)
End Sub 'OnRowUpdating

' handler for RowUpdated event
Protected Shared Sub OnRowUpdated(sender As Object, e As SqlRowUpdatedEventArgs)
    PrintEventArgs(e)
End Sub 'OnRowUpdated

'Entry point which delegates to C-style main Private Function
Public Overloads Shared Sub Main()
    System.Environment.ExitCode = Main(System.Environment.GetCommandLineArgs())
End Sub

Overloads Public Shared Function Main(args() As String) As Integer
    Const CONNECTION_STRING As String = "Persist Security Info=False;Integrated Security=SSPI;database=northwind;server=mySQLServer"
    Const SELECT_ALL As String = "select * from Products"
    
    ' create DataAdapter
    Dim rAdapter As New SqlDataAdapter(SELECT_ALL, CONNECTION_STRING)
    Dim cb As SqlCommandBuilder = New SqlCommandBuilder(rAdapter)
    
    ' Create and fill dataset (select only first 5 rows)
    Dim rDataSet As New DataSet()
    rAdapter.Fill(rDataSet, 0, 5, "Table")
    
    ' Modify dataSet
    Dim rTable As DataTable = rDataSet.Tables("Table")
    rTable.Rows(0)(1) = "new product"
    
    ' add handlers
    AddHandler rAdapter.RowUpdating, AddressOf OnRowUpdating
    AddHandler rAdapter.RowUpdated, AddressOf OnRowUpdated
    
    ' update, this operation fires two events (RowUpdating/RowUpdated) per changed row 
    rAdapter.Update(rDataSet, "Table")
    
    ' remove handlers
    RemoveHandler rAdapter.RowUpdating, AddressOf OnRowUpdating
    RemoveHandler rAdapter.RowUpdated, AddressOf OnRowUpdated
    Return 0
End Function 'Main


Overloads Protected Shared Sub PrintEventArgs(args As SqlRowUpdatingEventArgs)
    Console.WriteLine("OnRowUpdating")
    Console.WriteLine("  event args: (" & " command=" & args.Command.CommandText & _
                    " commandType=" & args.StatementType & " status=" & args.Status & ")")
End Sub 'PrintEventArgs


Overloads Protected Shared Sub PrintEventArgs(args As SqlRowUpdatedEventArgs)
    Console.WriteLine("OnRowUpdated")
    Console.WriteLine("  event args: (" & " command=" & args.Command.CommandText & _
                    " commandType=" & args.StatementType & " recordsAffected=" & _
                    args.RecordsAffected & " status=" & args.Status & ")")
End Sub 'PrintEventArgs
End Class 'Form1

[C#] 
// handler for RowUpdating event
 protected static void OnRowUpdating(object sender, SqlRowUpdatingEventArgs e) {
    PrintEventArgs(e);
 }
 
 // handler for RowUpdated event
 protected static void OnRowUpdated(object sender, SqlRowUpdatedEventArgs e) {
    PrintEventArgs(e);
 }
 
 public static int Main(String[] args) {
    const string CONNECTION_STRING = "Persist Security Info=False;Integrated Security=SSPI;database=northwind;server=mySQLServer";
    const string SELECT_ALL = "select * from Products";
 
    // create DataAdapter
    SqlDataAdapter rAdapter = new SqlDataAdapter(SELECT_ALL, CONNECTION_STRING);
    SqlCommandBuilder cb = new SqlCommandBuilder(rAdapter);
 
    // Create and fill dataset (select only first 5 rows)
    DataSet rDataSet = new DataSet();
    rAdapter.Fill(rDataSet, 0, 5, "Table");
 
    // Modify dataSet
    DataTable rTable = rDataSet.Tables["Table"];
    rTable.Rows[0][1] = "new product";
 
    // add handlers
    rAdapter.RowUpdating += new SqlRowUpdatingEventHandler( OnRowUpdating );
    rAdapter.RowUpdated += new SqlRowUpdatedEventHandler( OnRowUpdated );
 
    // update, this operation fires two events (RowUpdating/RowUpdated) per changed row 
    rAdapter.Update(rDataSet, "Table");
 
    // remove handlers
    rAdapter.RowUpdating -= new SqlRowUpdatingEventHandler( OnRowUpdating );
    rAdapter.RowUpdated -= new SqlRowUpdatedEventHandler( OnRowUpdated );
    return 0;
 }
 
 protected static void PrintEventArgs(SqlRowUpdatingEventArgs args) {
    Console.WriteLine("OnRowUpdating");
    Console.WriteLine("  event args: ("+
           " command=" + args.Command + 
           " commandType=" + args.StatementType + 
           " status=" + args.Status + ")");
 }
 
 protected static void PrintEventArgs(SqlRowUpdatedEventArgs args) {
    Console.WriteLine("OnRowUpdated");
    Console.WriteLine( "  event args: ("+
           " command=" + args.Command +
           " commandType=" + args.StatementType + 
           " recordsAffected=" + args.RecordsAffected + 
           " status=" + args.Status + ")" );
 }

[C++] 
protected:
// handler for RowUpdating event
 static void OnRowUpdating(Object* /*sender*/, SqlRowUpdatingEventArgs* e) {
    PrintEventArgs(e);
 }
 
 // handler for RowUpdated event
 static void OnRowUpdated(Object* /*sender*/, SqlRowUpdatedEventArgs* e) {
    PrintEventArgs(e);
 }

public:
 static int Main() {
    String* CONNECTION_STRING = S"Persist Security Info=False;Integrated Security=SSPI;database=northwind;server=mySQLServer";
    String* SELECT_ALL = S"select * from Products";
 
    // create DataAdapter
    SqlDataAdapter* rAdapter = new SqlDataAdapter(SELECT_ALL, CONNECTION_STRING);
    SqlCommandBuilder* cb = new SqlCommandBuilder(rAdapter);
 
    // Create and fill dataset (select only first 5 rows)
    DataSet* rDataSet = new DataSet();
    rAdapter->Fill(rDataSet, 0, 5, S"Table");
 
    // Modify dataSet
    DataTable* rTable = rDataSet->Tables->Item[S"Table"];
    rTable->Rows->Item[0]->Item[1] = S"new product";
 
    // add handlers
    rAdapter->RowUpdating += new SqlRowUpdatingEventHandler(0,  OnRowUpdating );
    rAdapter->RowUpdated += new SqlRowUpdatedEventHandler(0,  OnRowUpdated );
 
    // update, this operation fires two events (RowUpdating/RowUpdated) per changed row 
    rAdapter->Update(rDataSet, S"Table");
 
    // remove handlers
    rAdapter->RowUpdating -= new SqlRowUpdatingEventHandler(0,  OnRowUpdating );
    rAdapter->RowUpdated -= new SqlRowUpdatedEventHandler(0,  OnRowUpdated );
    return 0;
 }
 
protected:
 static void PrintEventArgs(SqlRowUpdatingEventArgs* args) {
    Console::WriteLine(S"OnRowUpdating");
    Console::WriteLine(String::Format( S"  event args: ( command={0} commandType={1} status={2})", args->Command, __box(args->StatementType), __box(args->Status)));
 }
 
 static void PrintEventArgs(SqlRowUpdatedEventArgs* args) {
    Console::WriteLine(S"OnRowUpdated");
    Console::WriteLine(String::Concat(
       String::Format( S"  event args: ( command={0} commandType={1} ", args->Command, __box(args->StatementType) ),
       String::Format( S"recordsAffected={0} status={1})", __box(args->RecordsAffected), __box(args->Status) )));
 }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Data.SqlClient

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

アセンブリ: System.Data (System.Data.dll 内)

参照

SqlRowUpdatedEventArgs メンバ | System.Data.SqlClient 名前空間