개체는 DataSet 세 가지 DisposedInitializedMergeFailed이벤트를 제공합니다.
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 이벤트는 생성자가 새 DataSet
인스턴스 DataSet
를 초기화한 후에 발생합니다.
IsInitialized가 초기화가 완료되면 속성은 true
을 반환하고, 그렇지 않으면 DataSet
을 반환합니다.
BeginInit 메서드는 DataSet
의 초기화를 시작하며, IsInitialized를 false
로 설정합니다. 초기화를 종료하는 EndInit 메서드는 DataSet
을 true
로 설정합니다. 이러한 메서드는 Visual Studio 디자인 환경에서 다른 구성 요소에서 사용 중인 메서드를 DataSet
초기화하는 데 사용됩니다. 코드에서는 그런 것들을 일반적으로 사용하지 않습니다.
처리된 이벤트
DataSet
는 MarshalByValueComponent 클래스에서 파생되며, 이 클래스는 Dispose 메서드와 Disposed 이벤트를 모두 노출합니다. 이벤트는 Disposed 구성 요소에서 삭제된 이벤트를 수신 대기하는 이벤트 처리기를 추가합니다.
Disposed의 DataSet
이벤트를 사용하여 Dispose 메서드가 호출될 때 코드를 실행할 수 있습니다.
Dispose 에서 사용하는 MarshalByValueComponent리소스를 해제합니다.
비고
DataSet
및 DataTable
객체는 MarshalByValueComponent로부터 상속받고 원격을 위한 ISerializable 인터페이스를 지원합니다. 이러한 개체는 원격으로 사용할 수 있는 유일한 ADO.NET 개체입니다. 자세한 내용은 .NET 원격을 참조하세요.
작업 DataSet
할 때 사용할 수 있는 다른 이벤트에 대한 자세한 내용은 DataTable 이벤트 처리 및 DataAdapter 이벤트 처리를 참조하세요.