Share via

DataTable.RowChanging Event


Occurs when a DataRow is changing.

 event System::Data::DataRowChangeEventHandler ^ RowChanging;
public event System.Data.DataRowChangeEventHandler? RowChanging;
public event System.Data.DataRowChangeEventHandler RowChanging;
public event System.Data.DataRowChangeEventHandler RowChanging;
member this.RowChanging : System.Data.DataRowChangeEventHandler 
member this.RowChanging : System.Data.DataRowChangeEventHandler 
Public Custom Event RowChanging As DataRowChangeEventHandler 

Event Type



private static void DataTableRowChanging()
    DataTable custTable = new DataTable("Customers");
    // add columns
    custTable.Columns.Add("id", typeof(int));
    custTable.Columns.Add("name", typeof(string));
    custTable.Columns.Add("address", typeof(string));

    // set PrimaryKey
    custTable.Columns[ "id" ].Unique = true;
    custTable.PrimaryKey = new DataColumn[] { custTable.Columns["id"] };

    // add a RowChanging event handler for the table.
    custTable.RowChanging += new DataRowChangeEventHandler(Row_Changing);

    // add ten rows
    for(int id=1; id<=10; id++)
            new object[] { id, string.Format("customer{0}", id),
            string.Format("address{0}", id) });

    // change the name column in all the rows
    foreach(DataRow row in custTable.Rows)
        row["name"] = string.Format("vip{0}", row["id"]);

private static void Row_Changing(object sender, DataRowChangeEventArgs e)
    Console.WriteLine("Row_Changing Event: name={0}; action={1}",
        e.Row["name"], e.Action);
 Private Sub DataTableRowChanging()
     Dim custTable As New DataTable("Customers")
     ' add columns
     custTable.Columns.Add("id", Type.GetType("System.Int32"))
     custTable.Columns.Add("name", Type.GetType("System.String"))
     custTable.Columns.Add("address", Type.GetType("System.String"))

     ' set PrimaryKey
     custTable.Columns("id").Unique = True
     custTable.PrimaryKey = New DataColumn() {custTable.Columns("id")}

     ' add a RowChanging event handler for the table.
     AddHandler custTable.RowChanging, _
            New DataRowChangeEventHandler(AddressOf Row_Changing)

     ' add ten rows
     Dim id As Integer
     For id = 1 To 10
         custTable.Rows.Add( _
New Object() {id, String.Format("customer{0}", id), _
         String.Format("address{0}", id)})


     ' change the name column in all the rows
     Dim row As DataRow
     For Each row In custTable.Rows
         row("name") = String.Format("vip{0}", row("id"))

 End Sub

 Private Sub Row_Changing(ByVal sender As Object, _
 ByVal e As DataRowChangeEventArgs)
     Console.WriteLine("Row_Changing Event: name={0}; action={1}", _
      e.Row("name"), e.Action)
 End Sub


For more information, see Handling DataTable Events.

Applies to

See also