다음을 통해 공유


DataSet 이벤트 처리

개체는 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의 초기화를 시작하며, IsInitializedfalse로 설정합니다. 초기화를 종료하는 EndInit 메서드는 DataSettrue로 설정합니다. 이러한 메서드는 Visual Studio 디자인 환경에서 다른 구성 요소에서 사용 중인 메서드를 DataSet 초기화하는 데 사용됩니다. 코드에서는 그런 것들을 일반적으로 사용하지 않습니다.

처리된 이벤트

DataSetMarshalByValueComponent 클래스에서 파생되며, 이 클래스는 Dispose 메서드와 Disposed 이벤트를 모두 노출합니다. 이벤트는 Disposed 구성 요소에서 삭제된 이벤트를 수신 대기하는 이벤트 처리기를 추가합니다. DisposedDataSet 이벤트를 사용하여 Dispose 메서드가 호출될 때 코드를 실행할 수 있습니다. Dispose 에서 사용하는 MarshalByValueComponent리소스를 해제합니다.

비고

DataSetDataTable 객체는 MarshalByValueComponent로부터 상속받고 원격을 위한 ISerializable 인터페이스를 지원합니다. 이러한 개체는 원격으로 사용할 수 있는 유일한 ADO.NET 개체입니다. 자세한 내용은 .NET 원격을 참조하세요.

작업 DataSet할 때 사용할 수 있는 다른 이벤트에 대한 자세한 내용은 DataTable 이벤트 처리DataAdapter 이벤트 처리를 참조하세요.

참고하십시오