다음을 통해 공유


DataTable.ColumnChanging 이벤트

DataRow에 있는 지정된 DataColumn의 값이 변경될 때 발생합니다.

네임스페이스: System.Data
어셈블리: System.Data(system.data.dll)

구문

‘선언
Public Event ColumnChanging As DataColumnChangeEventHandler
‘사용 방법
Dim instance As DataTable
Dim handler As DataColumnChangeEventHandler

AddHandler instance.ColumnChanging, handler
public event DataColumnChangeEventHandler ColumnChanging
public:
event DataColumnChangeEventHandler^ ColumnChanging {
    void add (DataColumnChangeEventHandler^ value);
    void remove (DataColumnChangeEventHandler^ value);
}
/** @event */
public void add_ColumnChanging (DataColumnChangeEventHandler value)

/** @event */
public void remove_ColumnChanging (DataColumnChangeEventHandler value)
JScript에서는 이벤트를 사용할 수 있지만 새로 선언할 수는 없습니다.

설명

자세한 내용은 DataTable 이벤트 사용을 참조하십시오.

예제

Private Shared Sub DataTableColumnChanging()
    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 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
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 );
}

플랫폼

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

2.0, 1.1, 1.0에서 지원

.NET Compact Framework

2.0, 1.0에서 지원

참고 항목

참조

DataTable 클래스
DataTable 멤버
System.Data 네임스페이스

기타 리소스

DataTable 작성 및 사용