OleDbDataAdapter.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. La tentative de mise à jour a lieu. Par conséquent, l'événement se produit.

public event System.Data.OleDb.OleDbRowUpdatingEventHandler? RowUpdating;
[System.Data.DataSysDescription("DbDataAdapter_RowUpdating")]
public event System.Data.OleDb.OleDbRowUpdatingEventHandler RowUpdating;
public event System.Data.OleDb.OleDbRowUpdatingEventHandler RowUpdating;

Type d'événement

Attributs

Exemples

L’exemple suivant montre les RowUpdating événements et RowUpdated utilisés.

public static void CreateDataAdapter(
    string connectionString)
{
    using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        OleDbDataAdapter adapter = new OleDbDataAdapter(
            "SELECT * FROM Customers WHERE CustomerID = 'ALFKI'", connection);

        adapter.InsertCommand = new OleDbCommand(
            "INSERT INTO Customers (CustomerID, CompanyName) VALUES(?, ?)",
            connection);

        adapter.InsertCommand.Parameters.Add(
            "@CustomerID", OleDbType.VarChar, 5, "CustomerID");
        adapter.InsertCommand.Parameters.Add(
            "@CompanyName", OleDbType.VarChar, 30, "CompanyName");

        connection.Open();

        DataSet custDS = new DataSet();
        adapter.Fill(custDS, "Customers");

        DataRow custRow = custDS.Tables["Customers"].NewRow();
        custRow["CustomerID"] = "NEWCO";
        custRow["CompanyName"] = "New Company";
        custDS.Tables["Customers"].Rows.Add(custRow);

        // add handlers
        adapter.RowUpdating += new OleDbRowUpdatingEventHandler(OnRowUpdating);
        adapter.RowUpdated += new OleDbRowUpdatedEventHandler(OnRowUpdated);

        adapter.Update(custDS, "Customers");

        // remove handlers
        adapter.RowUpdating -= new OleDbRowUpdatingEventHandler(OnRowUpdating);
        adapter.RowUpdated -= new OleDbRowUpdatedEventHandler(OnRowUpdated);

        foreach (DataRow row in custDS.Tables["Customers"].Rows)
        {
            if (row.HasErrors)
                Console.WriteLine(row.RowError);
        }
    }
}

protected static void OnRowUpdating(object sender,
    OleDbRowUpdatingEventArgs args)
{
    if (args.StatementType == StatementType.Insert)
    {
        System.IO.TextWriter writer = System.IO.File.AppendText("Inserts.log");
        writer.WriteLine("{0}: Customer {1} Inserted.",
            DateTime.Now, args.Row["CustomerID"]);
        writer.Close();
    }
}

protected static void OnRowUpdated(object sender, OleDbRowUpdatedEventArgs args)
{
    if (args.Status == UpdateStatus.ErrorsOccurred)
    {
        args.Row.RowError = args.Errors.Message;
        args.Status = UpdateStatus.SkipCurrentRow;
    }
}

Remarques

Lorsque vous utilisez Update, deux événements se produisent par ligne de données mise à jour. L’ordre d’exécution est le suivant :

  1. Les valeurs dans le DataRow sont déplacées vers les valeurs de paramètre.

  2. L'événement OnRowUpdating est déclenché.

  3. La commande s’exécute.

  4. Si la commande a la FirstReturnedRecordvaleur , le premier résultat retourné est placé dans le DataRow.

  5. S’il existe des paramètres de sortie, ils sont placés dans .DataRow

  6. L'événement OnRowUpdated est déclenché.

  7. AcceptChanges est appelée.

S’applique à

Produit Versions
.NET 6 (package-provided), 7 (package-provided), 8 (package-provided), 9 (package-provided)
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7 (package-provided), 4.7, 4.7.1 (package-provided), 4.7.1, 4.7.2 (package-provided), 4.7.2, 4.8 (package-provided), 4.8, 4.8.1
.NET Standard 2.0 (package-provided)

Voir aussi