DataTable.ColumnChanging Event   
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Occurs when a value is being changed for the specified DataColumn in a DataRow.
public:
 event System::Data::DataColumnChangeEventHandler ^ ColumnChanging;public event System.Data.DataColumnChangeEventHandler? ColumnChanging;public event System.Data.DataColumnChangeEventHandler ColumnChanging;[System.Data.DataSysDescription("DataTableColumnChangingDescr")]
public event System.Data.DataColumnChangeEventHandler ColumnChanging;member this.ColumnChanging : System.Data.DataColumnChangeEventHandler [<System.Data.DataSysDescription("DataTableColumnChangingDescr")>]
member this.ColumnChanging : System.Data.DataColumnChangeEventHandler Public Custom Event ColumnChanging As DataColumnChangeEventHandler Event Type
- Attributes
Examples
private static void DataTableColumnChanging()
{
    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 ColumnChanging event handler for the table.
    custTable.ColumnChanging += new
        DataColumnChangeEventHandler(Column_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 Column_Changing(object sender,
    DataColumnChangeEventArgs e )
{
    Console.WriteLine(
        "Column_Changing Event: name={0}; Column={1}; proposed name={2}",
        e.Row["name"], e.Column.ColumnName, e.ProposedValue );
}
Private Shared Sub DataTableColumnChanging()
    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 ColumnChanging event handler for the table.
    AddHandler custTable.ColumnChanging, New _
        DataColumnChangeEventHandler(AddressOf Column_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 Shared Sub Column_Changing(sender As Object, _
    e As DataColumnChangeEventArgs)
    Console.WriteLine( _
        "Column_Changing Event: name={0}; Column={1}; proposed name={2}", _
        e.Row("name"), e.Column.ColumnName, e.ProposedValue) 
End Sub
Remarks
For more information, see Handling DataTable Events.