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

Definition

Tritt während der Ausführung von Update(DataSet) ein, nachdem ein Befehl für die Datenquelle ausgeführt wurde.Occurs during Update(DataSet) after a command is executed against the data source. Es wird eine Aktualisierung versucht, also wird das Ereignis ausgelöst.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 
Attribute

Beispiele

Im folgenden Beispiel wird gezeigt, wie das- RowUpdating Ereignis RowUpdated und das-Ereignis verwendet werden.The following example shows how to use both the RowUpdating and RowUpdated events.

Das RowUpdating Ereignis gibt die folgende Ausgabe zurück:The RowUpdating event returns this output:

Ereignis Argumente: (Command = System. Data. SqlClient. SqlCommand CommandType = 2 Status = 0)event args: (command=System.Data.SqlClient.SqlCommand commandType=2 status=0)

Das RowUpdated Ereignis gibt die folgende Ausgabe zurück:The RowUpdated event returns this output:

Ereignis Argumente: (Command = System. Data. SqlClient. SqlCommand CommandType = 2 recordsafffiziert = 1 Row = System. Data. DataRow [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 * FROMProducts";

    // 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 * FROMProducts"
        
        ' create DataAdapter
        Dim adapter As New SqlDataAdapter(queryString, connectionString)
        Dim builder As SqlCommandBuilder = 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 

Hinweise

Bei Verwendung Updatevon gibt es zwei Ereignisse, die pro aktualisierter Daten Zeile auftreten.When using Update, there are two events that occur per data row updated. Die Ausführungsreihenfolge sieht wie folgt aus:The order of execution is as follows:

  1. Die Werte in DataRow werden in die Parameterwerte verschoben.The values in the DataRow are moved to the parameter values.

  2. Das OnRowUpdating-Ereignis wird ausgelöst.The OnRowUpdating event is raised.

  3. Der Befehl wird ausgeführt.The command executes.

  4. Wenn der-Befehl auf FirstReturnedRecordfestgelegt ist, wird das erste zurückgegebene Ergebnis DataRowin eingefügt.If the command is set to FirstReturnedRecord, the first returned result is placed in the DataRow.

  5. Wenn Ausgabeparameter vorhanden sind, werden diese in der DataRowplatziert.If there are output parameters, they are placed in the DataRow.

  6. Das OnRowUpdated-Ereignis wird ausgelöst.The OnRowUpdated event is raised.

  7. AcceptChanges wird aufgerufen.AcceptChanges is called.

Gilt für:

Siehe auch