SqlDataAdapter.RowUpdated Ereignis

Definition

Tritt ein, wenn Update(DataSet) ein Befehl für die Datenquelle ausgeführt wird. Der Versuch, die Aktualisierung durchzuführen, wird ausgeführt, sodass das Ereignis ausgelöst wird.

public:
 event Microsoft::Data::SqlClient::SqlRowUpdatedEventHandler ^ RowUpdated;
public event Microsoft.Data.SqlClient.SqlRowUpdatedEventHandler RowUpdated;
member this.RowUpdated : Microsoft.Data.SqlClient.SqlRowUpdatedEventHandler 
Public Custom Event RowUpdated As SqlRowUpdatedEventHandler 

Ereignistyp

Beispiele

Das folgende Beispiel zeigt, wie sowohl die Ereignisse als RowUpdated auch die RowUpdating Ereignisse verwendet werden.

using System;
using System.Data;
using System.Data.Common;
using System.Windows.Forms;
using System.Xml;
using Microsoft.Data.SqlClient;

public class Form1 : Form
{
    private DataSet DataSet1;
    private DataGrid dataGrid1;

    // 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 + ")");
    }
}

Das RowUpdating Ereignis gibt diese Ausgabe zurück:

event args: (command=Microsoft.Data.SqlClient.SqlCommand commandType=2 status=0)

Das RowUpdated Ereignis gibt diese Ausgabe zurück:

event args: (command=Microsoft.Data.SqlClient.SqlCommand commandType=2 recordsAffected=1 row=System.Data.DataRow[37] status=0)

Hinweise

Bei Verwendung Update(DataSet)gibt es zwei Ereignisse, die pro Datenzeile aktualisiert werden. Die Reihenfolge der Ausführung lautet wie folgt:

  1. Die Werte in der Datei DataRow werden in die Parameterwerte verschoben.
  2. Das RowUpdating-Ereignis wird ausgelöst.
  3. Der Befehl wird ausgeführt.
  4. Wenn der Befehl auf FirstReturnedRecordfestgelegt ist, wird das erste zurückgegebene Ergebnis in der DataRowplatziert.
  5. Wenn Ausgabeparameter vorhanden sind, werden sie in der DataRowplatziert.
  6. Das RowUpdated-Ereignis wird ausgelöst.
  7. AcceptChanges() wird aufgerufen.

Gilt für: