Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

DataTable.ColumnChanging Event

Definition

Namespace:
System.Data
Assemblies:
netstandard.dll, System.Data.Common.dll
Assembly:
System.Data.Common.dll
Assembly:
System.Data.dll
Assembly:
netstandard.dll
Source:
DataTable.cs
Source:
DataTable.cs
Source:
DataTable.cs
Source:
DataTable.cs
Source:
DataTable.cs

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.

Applies to

See also


Feedback

Was this page helpful?