SqlDataAdapter.RowUpdated SqlDataAdapter.RowUpdated SqlDataAdapter.RowUpdated SqlDataAdapter.RowUpdated Event

定義

Update(DataSet) 処理中に、データ ソースに対してコマンドが実行された後に発生します。Occurs during Update(DataSet) after a command is executed against the data source. 更新が試行されると、このイベントが発生します。The attempt to update is made, so the event fires.

public:
 event System::Data::SqlClient::SqlRowUpdatedEventHandler ^ RowUpdated;
[System.Data.DataSysDescription("DbDataAdapter_RowUpdated")]
public event System.Data.SqlClient.SqlRowUpdatedEventHandler RowUpdated;
member this.RowUpdated : System.Data.SqlClient.SqlRowUpdatedEventHandler 
Public Custom Event RowUpdated As SqlRowUpdatedEventHandler 
属性

次の例は、イベントとRowUpdating RowUpdatedイベントの両方を使用する方法を示しています。The following example shows how to use both the RowUpdating and RowUpdated events.

このRowUpdatingイベントは、次の出力を返します。The RowUpdating event returns this output:

イベント引数: (command = System. Data. SqlClient commandType = 2 status = 0)event args: (command=System.Data.SqlClient.SqlCommand commandType=2 status=0)

このRowUpdatedイベントは、次の出力を返します。The RowUpdated event returns this output:

イベント引数: (command = recordsAffected の場合は、2 = 1 row = system.string [37] status = 0) を実行します。event args: (command=System.Data.SqlClient.SqlCommand commandType=2 recordsAffected=1 row=System.Data.DataRow[37] status=0)

   // handler for RowUpdating event
   private static void OnRowUpdating(object sender, SqlRowUpdatingEventArgs e) 
   {
       PrintEventArgs(e);
   }

   // handler for RowUpdated event
   private static void OnRowUpdated(object sender, SqlRowUpdatedEventArgs e) 
   {
       PrintEventArgs(e);
   }

   public static int Main() 
   {
       const string connectionString = 
                 "Integrated Security=SSPI;database=Northwind;server=MSSQL1";
       const string queryString = "SELECT * FROM Products";

       // create DataAdapter
       SqlDataAdapter adapter = new SqlDataAdapter(queryString, connectionString);
       SqlCommandBuilder builder = new SqlCommandBuilder(adapter);

       // Create and fill DataSet (select only first 5 rows)
       DataSet dataSet = new DataSet();
       adapter.Fill(dataSet, 0, 5, "Table");

       // Modify DataSet
       DataTable table = dataSet.Tables["Table"];
       table.Rows[0][1] = "new product";

       // add handlers
       adapter.RowUpdating += new SqlRowUpdatingEventHandler( OnRowUpdating );
       adapter.RowUpdated += new SqlRowUpdatedEventHandler( OnRowUpdated );

       // update, this operation fires two events 
       // (RowUpdating/RowUpdated) per changed row 
       adapter.Update(dataSet, "Table");

       // remove handlers
       adapter.RowUpdating -= new SqlRowUpdatingEventHandler( OnRowUpdating );
       adapter.RowUpdated -= new SqlRowUpdatedEventHandler( OnRowUpdated );
       return 0;
   }

   private static void PrintEventArgs(SqlRowUpdatingEventArgs args) 
   {
       Console.WriteLine("OnRowUpdating");
       Console.WriteLine("  event args: ("+
           " command=" + args.Command + 
           " commandType=" + args.StatementType + 
           " status=" + args.Status + ")");
   }

   private static void PrintEventArgs(SqlRowUpdatedEventArgs args) 
   {
       Console.WriteLine("OnRowUpdated");
       Console.WriteLine( "  event args: ("+
           " command=" + args.Command +
           " commandType=" + args.StatementType + 
           " recordsAffected=" + args.RecordsAffected + 
           " status=" + args.Status + ")");
   }
    ' handler for RowUpdating event
    Private Shared Sub OnRowUpdating(sender As Object, e As SqlRowUpdatingEventArgs)
        PrintEventArgs(e)
    End Sub 

    ' handler for RowUpdated event
    Private Shared Sub OnRowUpdated(sender As Object, e As SqlRowUpdatedEventArgs)
        PrintEventArgs(e)
    End Sub 
    
    '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 connectionString As String = _
            "Integrated Security=SSPI;database=Northwind;server=MSSQL1"
        Const queryString As String = "SELECT * FROM Products"
        
        ' create DataAdapter
        Dim adapter As New SqlDataAdapter(queryString, connectionString)
        Dim builder As New SqlCommandBuilder(adapter)
        
        ' Create and fill DataSet (select only first 5 rows)
        Dim dataSet As New DataSet()
        adapter.Fill(dataSet, 0, 5, "Table")
        
        ' Modify DataSet
        Dim table As DataTable = dataSet.Tables("Table")
        table.Rows(0)(1) = "new product"
        
        ' add handlers
        AddHandler adapter.RowUpdating, AddressOf OnRowUpdating
        AddHandler adapter.RowUpdated, AddressOf OnRowUpdated
        
        ' update, this operation fires two events 
        '(RowUpdating/RowUpdated) per changed row 
        adapter.Update(dataSet, "Table")
        
        ' remove handlers
        RemoveHandler adapter.RowUpdating, AddressOf OnRowUpdating
        RemoveHandler adapter.RowUpdated, AddressOf OnRowUpdated
        Return 0
    End Function 
    
    
    Overloads Private 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 
    
    
    Overloads Private 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 
End Class 

注釈

を使用Updateする場合、データ行ごとに発生する2つのイベントが更新されます。When using Update, there are two events that occur per data row updated. 実行順序は次のとおりです。The order of execution is as follows:

  1. DataRow値は、パラメーター値に移動されます。The values in the DataRow are moved to the parameter values.

  2. OnRowUpdating イベントが発生します。The OnRowUpdating event is raised.

  3. コマンドが実行されます。The command executes.

  4. コマンドがにFirstReturnedRecord設定されている場合、最初に返されたDataRow結果がに配置されます。If the command is set to FirstReturnedRecord, the first returned result is placed in the DataRow.

  5. 出力パラメーターがある場合は、 DataRowに配置されます。If there are output parameters, they are placed in the DataRow.

  6. OnRowUpdated イベントが発生します。The OnRowUpdated event is raised.

  7. AcceptChanges が呼び出されます。AcceptChanges is called.

適用対象

こちらもご覧ください