Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

OleDbDataAdapter.RowUpdated Event

Occurs during Update after a command is executed against the data source. The attempt to update is made. Therefore, the event occurs.

Namespace: System.Data.OleDb
Assembly: System.Data (in system.data.dll)

public event OleDbRowUpdatedEventHandler RowUpdated
/** @event */
public void add_RowUpdated (OleDbRowUpdatedEventHandler value)

/** @event */
public void remove_RowUpdated (OleDbRowUpdatedEventHandler value)

JScript supports the use of events, but not the declaration of new ones.

When you use Update, there are two events that occur per data row updated. The order of execution is as follows:

  1. The values in the DataRow are moved to the parameter values.

  2. The OnRowUpdating event is raised.

  3. The command executes.

  4. If the command is set to FirstReturnedRecord, the first returned result is placed in the DataRow.

  5. If there are output parameters, they are placed in the DataRow.

  6. The OnRowUpdated event is raised.

  7. AcceptChanges is called.

The following example shows the RowUpdating and RowUpdated events being used.

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;
    


using System;
using System.Data;
using System.Data.OleDb;

class Class1
{
    static void Main()
    {
        string x = "Provider=SQLOLEDB;Data Source=(local);Integrated Security=SSPI;Initial Catalog=Northwind";
        CreateDataAdapter(x);
    

    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;
        
    

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0, 1.1, 1.0
Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.