SqlDataAdapter.RowUpdated Событие
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Происходит во время выполнения Update(DataSet) команды в источнике данных. Предпринята попытка обновить, поэтому событие запускается.
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
Тип события
Примеры
В следующем примере показано, как использовать как события, RowUpdating так и RowUpdated события.
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 + ")");
}
}
Событие возвращает следующие выходные RowUpdating данные:
event args: (command=Microsoft.Data.SqlClient.SqlCommand commandType=2 status=0)
Событие возвращает следующие выходные RowUpdated данные:
event args: (command=Microsoft.Data.SqlClient.SqlCommand commandType=2 recordsAffected=1 row=System.Data.DataRow[37] status=0)
Комментарии
При использовании Update(DataSet)существует два события, которые происходят на каждую строку данных, обновленную. Порядок выполнения выглядит следующим образом:
- Значения в этом DataRow файле перемещаются в значения параметров.
- Возникает событие RowUpdating.
- Выполняется команда.
- Если задано
FirstReturnedRecordзначение команды, первый возвращенный результат помещается в .DataRow - Если есть выходные параметры, они помещаются в .DataRow
- Возникает событие RowUpdated.
- AcceptChanges() вызывается.