SqlDataAdapter.RowUpdated Olay

Tanım

Update(DataSet) Veri kaynağında bir komut yürütüldükten sonra gerçekleşir. Güncelleştirme girişimi yapıldığından olay tetikleniyor.

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 

Olay Türü

Örnekler

Aşağıdaki örnekte hem hem RowUpdated de olaylarının RowUpdating nasıl kullanılacağı gösterilmektedir.

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

Olay RowUpdating şu çıkışı döndürür:

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

Olay RowUpdated şu çıkışı döndürür:

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

Açıklamalar

kullanırken Update(DataSet), güncelleştirilen veri satırı başına gerçekleşen iki olay vardır. Yürütme sırası aşağıdaki gibidir:

  1. içindeki DataRow değerler parametre değerlerine taşınır.
  2. RowUpdating olayı tetiklenir.
  3. Komut yürütülür.
  4. Komut FirstReturnedRecordolarak ayarlanırsa, döndürülen ilk sonuç DataRowyerleştirilir.
  5. Çıkış parametreleri varsa, DataRowyerleştirilir.
  6. RowUpdated olayı tetiklenir.
  7. AcceptChanges() adlandırılır.

Şunlara uygulanır