DataTable.ColumnChanging 事件   
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
更改 DataRow 中指定的 DataColumn 值时发生。
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 事件类型
- 属性
示例
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
注解
有关详细信息,请参阅 处理 DataTable 事件。