SqlDataAdapter.RowUpdating Événement
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Se produit pendant une opération de Update(DataSet), avant l'exécution d'une commande sur la source de données. La tentative de mise à jour provoque le déclenchement de l'événement.
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
Type d'événement
Exemples
L’exemple suivant montre comment utiliser les RowUpdating événements et .RowUpdated
L’événement RowUpdating retourne cette sortie :
event args : (command=Microsoft.Data.SqlClient.SqlCommand commandType=2 status=0)
L’événement RowUpdated retourne cette sortie :
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 + ")");
}
}
Remarques
Lors de l’utilisation de Update, deux événements se produisent par ligne de données mise à jour. L’ordre d’exécution est le suivant :
Les valeurs dans le DataRow sont déplacées vers les valeurs de paramètre.
L'événement OnRowUpdating est déclenché.
La commande s’exécute.
Si la commande a la
FirstReturnedRecord
valeur , le premier résultat retourné est placé dans le DataRow.S’il existe des paramètres de sortie, ils sont placés dans .DataRow
L'événement OnRowUpdated est déclenché.
AcceptChanges est appelée.