SqlDataAdapter.RowUpdating Événement

Définition

Se produit pendant une opération de Update(DataSet), avant l'exécution d'une commande sur la source de données.Occurs during Update(DataSet) before a command is executed against the data source. La tentative de mise à jour provoque le déclenchement de l'événement.The attempt to update is made, so the event fires.

public:
 event System::Data::SqlClient::SqlRowUpdatingEventHandler ^ RowUpdating;
[System.Data.DataSysDescription("DbDataAdapter_RowUpdating")]
public event System.Data.SqlClient.SqlRowUpdatingEventHandler RowUpdating;
member this.RowUpdating : System.Data.SqlClient.SqlRowUpdatingEventHandler 
Public Custom Event RowUpdating As SqlRowUpdatingEventHandler 
Attributs

Exemples

L’exemple suivant montre comment utiliser à la fois RowUpdating les RowUpdated événements et.The following example shows how to use both the RowUpdating and RowUpdated events.

L' RowUpdating événement retourne la sortie suivante :The RowUpdating event returns this output:

arguments d’événement : (commande = System. Data. SqlClient. SqlCommand commandType = 2 Status = 0)event args: (command=System.Data.SqlClient.SqlCommand commandType=2 status=0)

L' RowUpdated événement retourne la sortie suivante :The RowUpdated event returns this output:

arguments d’événement : (Command = System. Data. SqlClient. SqlCommand commandType = 2 recordsAffected = 1 row = System. Data. DataRow [37] Status = 0)event args: (command=System.Data.SqlClient.SqlCommand commandType=2 recordsAffected=1 row=System.Data.DataRow[37] status=0)

   // 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 * FROM Products";

       // 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 + ")");
   }
    ' handler for RowUpdating event
    Private Shared Sub OnRowUpdating(sender As Object, e As SqlRowUpdatingEventArgs)
        PrintEventArgs(e)
    End Sub 

    ' handler for RowUpdated event
    Private Shared Sub OnRowUpdated(sender As Object, e As SqlRowUpdatedEventArgs)
        PrintEventArgs(e)
    End Sub 
    
    'Entry point which delegates to C-style main Private Function
    Public Overloads Shared Sub Main()
        System.Environment.ExitCode = Main(System.Environment.GetCommandLineArgs())
    End Sub
    
    Overloads Public Shared Function Main(args() As String) As Integer
        Const connectionString As String = _
            "Integrated Security=SSPI;database=Northwind;server=MSSQL1"
        Const queryString As String = "SELECT * FROM Products"
        
        ' create DataAdapter
        Dim adapter As New SqlDataAdapter(queryString, connectionString)
        Dim builder As New SqlCommandBuilder(adapter)
        
        ' Create and fill DataSet (select only first 5 rows)
        Dim dataSet As New DataSet()
        adapter.Fill(dataSet, 0, 5, "Table")
        
        ' Modify DataSet
        Dim table As DataTable = dataSet.Tables("Table")
        table.Rows(0)(1) = "new product"
        
        ' add handlers
        AddHandler adapter.RowUpdating, AddressOf OnRowUpdating
        AddHandler adapter.RowUpdated, AddressOf OnRowUpdated
        
        ' update, this operation fires two events 
        '(RowUpdating/RowUpdated) per changed row 
        adapter.Update(dataSet, "Table")
        
        ' remove handlers
        RemoveHandler adapter.RowUpdating, AddressOf OnRowUpdating
        RemoveHandler adapter.RowUpdated, AddressOf OnRowUpdated
        Return 0
    End Function 
    
    
    Overloads Private Shared Sub PrintEventArgs(args As SqlRowUpdatingEventArgs)
        Console.WriteLine("OnRowUpdating")
        Console.WriteLine("  event args: (" & " command=" & args.Command.CommandText & _
           " commandType=" & args.StatementType & " status=" & args.Status & ")")
    End Sub 
    
    
    Overloads Private Shared Sub PrintEventArgs(args As SqlRowUpdatedEventArgs)
        Console.WriteLine("OnRowUpdated")
        Console.WriteLine("  event args: (" & " command=" & args.Command.CommandText & _
           " commandType=" & args.StatementType & " recordsAffected=" & _
           args.RecordsAffected & " status=" & args.Status & ")")
    End Sub 
End Class 

Remarques

Lorsque vous Updateutilisez, deux événements se produisent pour chaque ligne de données mise à jour.When using Update, there are two events that occur per data row updated. L’ordre d’exécution est le suivant :The order of execution is as follows:

  1. Les valeurs dans le DataRow sont déplacées vers les valeurs de paramètre.The values in the DataRow are moved to the parameter values.

  2. L'événement OnRowUpdating est déclenché.The OnRowUpdating event is raised.

  3. La commande s’exécute.The command executes.

  4. Si la commande a la valeur FirstReturnedRecord, le premier résultat retourné est placé dans le DataRow.If the command is set to FirstReturnedRecord, the first returned result is placed in the DataRow.

  5. S’il existe des paramètres de sortie, ceux-ci DataRowsont placés dans le.If there are output parameters, they are placed in the DataRow.

  6. L'événement OnRowUpdated est déclenché.The OnRowUpdated event is raised.

  7. AcceptChanges est appelé.AcceptChanges is called.

S’applique à

Voir aussi