DataTable.ColumnChanging Event

Definition

Occurs when a value is being changed for the specified DataColumn in a DataRow.

C#
public event System.Data.DataColumnChangeEventHandler? ColumnChanging;
C#
public event System.Data.DataColumnChangeEventHandler ColumnChanging;
C#
[System.Data.DataSysDescription("DataTableColumnChangingDescr")]
public event System.Data.DataColumnChangeEventHandler ColumnChanging;

Event Type

Attributes

Examples

C#
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 );
}

Remarks

For more information, see Handling DataTable Events.

Applies to

Product Versions
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.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, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

See also