SqlDataAdapter.RowUpdating Událost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vyskytuje se během Update(DataSet) před provedením příkazu proti zdroji dat. Pokus o aktualizaci se provede, takže se událost aktivuje.
public:
event Microsoft::Data::SqlClient::SqlRowUpdatingEventHandler ^ RowUpdating;
public event Microsoft.Data.SqlClient.SqlRowUpdatingEventHandler RowUpdating;
member this.RowUpdating : Microsoft.Data.SqlClient.SqlRowUpdatingEventHandler
Public Custom Event RowUpdating As SqlRowUpdatingEventHandler
Event Type
Příklady
Následující příklad ukazuje, jak používat RowUpdating události a RowUpdated .
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)
using Microsoft.Data.SqlClient;
using System.Xml;
using System.Data.Common;
using System.Windows.Forms;
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 + ")");
}
}
Poznámky
Při použití nástroje Updatedochází ke dvěma událostem, ke kterým dochází na každém aktualizovaném řádku dat. Pořadí provádění je následující:
Hodnoty v parametru DataRow se přesunou do hodnot parametrů.
Událost OnRowUpdating je vyvolána.
Příkaz se spustí.
Pokud je příkaz nastavený na
FirstReturnedRecord
, první vrácený výsledek se umístí do DataRow.Pokud existují výstupní parametry, umístí se do DataRow.
Událost OnRowUpdated je vyvolána.
Volá se AcceptChanges.