데이터 세트 이벤트 처리
DataSet 개체는 Disposed, Initialized및 MergeFailed의 세 가지 이벤트를 제공합니다.
MergeFailed 이벤트
DataSet
개체의 이벤트 중 가장 많이 사용되는 MergeFailed
이벤트는 병합하는 DataSet
개체의 스키마에서 충돌이 발생할 때 나타납니다. 이러한 충돌은 대상 및 소스 DataRow 의 기본 키 값이 동일하고 EnforceConstraints 속성이 true
로 설정된 경우 발생합니다. 예를 들어 병합할 테이블의 기본 키 열이 두 DataSet
개체에 있는 테이블 간에서 서로 같으면 예외가 throw되고 MergeFailed
이벤트가 발생합니다. MergeFailedEventArgs 이벤트로 전달되는 MergeFailed
개체에는 두 Conflict 개체 사이의 스키마에서 발생한 충돌을 식별하는 DataSet
속성과 충돌한 테이블 이름을 식별하는 Table 속성이 있습니다.
다음 코드 단편에서는 MergeFailed
이벤트에 대한 이벤트 처리기를 추가하는 방법을 보여 줍니다.
AddHandler workDS.MergeFailed, New MergeFailedEventHandler( _
AddressOf DataSetMergeFailed)
Private Shared Sub DataSetMergeFailed( _
sender As Object,args As MergeFailedEventArgs)
Console.WriteLine("Merge failed for table " & args.Table.TableName)
Console.WriteLine("Conflict = " & args.Conflict)
End Sub
workDS.MergeFailed += new MergeFailedEventHandler(DataSetMergeFailed);
private static void DataSetMergeFailed(
object sender, MergeFailedEventArgs args)
{
Console.WriteLine("Merge failed for table " + args.Table.TableName);
Console.WriteLine("Conflict = " + args.Conflict);
}
Initialized 이벤트
Initialized 이벤트는 DataSet
생성자가 DataSet
의 새 인스턴스를 초기화한 후 발생합니다.
IsInitialized 이 초기화를 완료하면 true
속성이 DataSet
를 반환하고, 그렇지 않으면 false
를 반환합니다. BeginInit 의 초기화를 시작하는 DataSet
메서드는 IsInitialized 를 false
로 설정하고, EndInit 의 초기화를 끝내는 DataSet
메서드는 이를 true
로 설정합니다. 이러한 메서드는 Visual Studio 디자인 환경에서 다른 구성 요소가 사용하는 DataSet
를 초기화하는 데 사용합니다. 사용자 코드에는 일반적으로 이러한 메서드를 사용하지 않습니다.
Disposed 이벤트
DataSet
은 MarshalByValueComponent 메서드와 Dispose 이벤트를 모두 노출하는 Disposed 클래스에서 파생됩니다. Disposed이벤트는 구성 요소에서 삭제된 이벤트를 수신하기 위해 이벤트 처리기를 추가합니다. Disposed메서드가 호출될 때 코드를 실행하려는 경우 DataSet
의 Dispose이벤트를 사용할 수 있습니다. Dispose는 MarshalByValueComponent에서 사용하는 리소스를 해제합니다.
참고 항목
DataSet
및 DataTable
개체는 MarshalByValueComponent에서 상속하며 원격 연결을 위해 ISerializable 인터페이스를 지원합니다. 이 두 개체는 원격으로 연결할 수 있는 유일한 ADO.NET 개체입니다. 자세한 내용은 .NET Remoting을 참조하세요.
DataSet
작업할 때 사용할 수 있는 다른 이벤트에 대한 자세한 내용은 DataTable 이벤트 처리 및 DataAdapter 이벤트 처리를 참조하세요.