Skip to main content
.NET Framework Class Library
DataTable..::.RowChanging Event

Occurs when a DataRow is changing.

Namespace: System.Data
Assembly: System.Data (in System.Data.dll)
Syntax
Public Event RowChanging As DataRowChangeEventHandler
public event DataRowChangeEventHandler RowChanging
public:
 event DataRowChangeEventHandler^ RowChanging {
	void add (DataRowChangeEventHandler^ value);
	void remove (DataRowChangeEventHandler^ value);
}
member RowChanging : IEvent<DataRowChangeEventHandler,
    DataRowChangeEventArgs>
Remarks

For more information, see Handling DataTable Events (ADO.NET).

Examples

 Private Sub DataTableRowChanging()
     Dim custTable As DataTable = 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)})
     Next

     custTable.AcceptChanges()

     ' 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"))
     Next

 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


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++)
	{
		custTable.Rows.Add(
			new object[] { id, string.Format("customer{0}", id), 
            string.Format("address{0}", id) });
	}
	
	custTable.AcceptChanges();

	// 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);
}

Version Information

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Platforms

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

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