DataTable.ColumnChanged Event


Occurs after a value has been changed for the specified DataColumn in a DataRow.

Namespace:   System.Data
Assembly:  System.Data (in System.Data.dll)

Public Event ColumnChanged As DataColumnChangeEventHandler

For more information, see Handling DataTable Events.

Private Shared Sub DataTableColumnChanged()
	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 ColumnChanged event handler for the table.
	AddHandler custTable.ColumnChanged, _
        New DataColumnChangeEventHandler(AddressOf Column_Changed )

	' 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) })


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

End Sub

Private Shared Sub Column_Changed(sender As Object, _
    e As DataColumnChangeEventArgs)
	Console.WriteLine("Column_Changed Event: name={0}; Column={1}; original name={2}", _
		e.Row("name"), e.Column.ColumnName, e.Row("name", DataRowVersion.Original))
End Sub

.NET Framework
Available since 1.1
Return to top