SqlDataAdapter.RowUpdated Událost

Definice

Nastane během Update(DataSet) po provedení příkazu proti zdroji dat. Provede se pokus o aktualizaci, takže se událost aktivuje.

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 

Event Type

Příklady

Následující příklad ukazuje, jak používat události RowUpdating i RowUpdated události.

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

Událost RowUpdating vrátí tento výstup:

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

Událost RowUpdated vrátí tento výstup:

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

Poznámky

Při použití Update(DataSet)se aktualizují dvě události na řádek dat. Pořadí provádění je následující:

  1. Hodnoty v objektu DataRow jsou přesunuty do hodnot parametrů.
  2. Událost RowUpdating je vyvolána.
  3. Příkaz se spustí.
  4. Pokud je příkaz nastaven na FirstReturnedRecord, první vrácený výsledek se umístí do DataRow.
  5. Pokud existují výstupní parametry, umístí se do DataRow.
  6. Událost RowUpdated je vyvolána.
  7. AcceptChanges() se volá.

Platí pro