SqlDataAdapter.RowUpdated Ereignis
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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:
- Die Werte in der Datei DataRow werden in die Parameterwerte verschoben.
- Das RowUpdating-Ereignis wird ausgelöst.
- Der Befehl wird ausgeführt.
- Wenn der Befehl auf
FirstReturnedRecordfestgelegt ist, wird das erste zurückgegebene Ergebnis in der DataRowplatziert. - Wenn Ausgabeparameter vorhanden sind, werden sie in der DataRowplatziert.
- Das RowUpdated-Ereignis wird ausgelöst.
- AcceptChanges() wird aufgerufen.