데이터 세트 이벤트 처리Handling DataSet Events

DataSet 개체는 Disposed, InitializedMergeFailed의 세 가지 이벤트를 제공합니다.The DataSet object provides three events: Disposed, Initialized, and MergeFailed.

MergeFailed 이벤트The MergeFailed Event

DataSet 개체의 이벤트 중 가장 많이 사용되는 MergeFailed이벤트는 병합하는 DataSet 개체의 스키마에서 충돌이 발생할 때 나타납니다.The most commonly used event of the DataSet object is MergeFailed, which is raised when the schema of the DataSet objects being merged are in conflict. 이러한 충돌은 대상 및 소스 DataRow 의 기본 키 값이 동일하고 EnforceConstraints 속성이 true로 설정된 경우 발생합니다.This occurs when a target and source DataRow have the same primary key value, and the EnforceConstraints property is set to true. 예를 들어 병합할 테이블의 기본 키 열이 두 DataSet 개체에 있는 테이블 간에서 서로 같으면 예외가 throw되고 MergeFailed 이벤트가 발생합니다.For example, if the primary key columns of a table being merged are the same between the tables in the two DataSet objects, an exception is thrown and the MergeFailed event is raised. MergeFailedEventArgs 이벤트로 전달되는 MergeFailed 개체에는 두 Conflict 개체 사이의 스키마에서 발생한 충돌을 식별하는 DataSet 속성과 충돌한 테이블 이름을 식별하는 Table 속성이 있습니다.The MergeFailedEventArgs object passed to the MergeFailed event have a Conflict property that identifies the conflict in schema between the two DataSet objects, and a Table property that identifies the name of the table in conflict.

다음 코드 단편에서는 MergeFailed 이벤트에 대한 이벤트 처리기를 추가하는 방법을 보여 줍니다.The following code fragment demonstrates how to add an event handler for the MergeFailed event.

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 이벤트The Initialized Event

Initialized 이벤트는 DataSet 생성자가 DataSet의 새 인스턴스를 초기화한 후 발생합니다.The Initialized event occurs after the DataSet constructor initializes a new instance of the DataSet.

IsInitialized 이 초기화를 완료하면 true 속성이 DataSet 를 반환하고, 그렇지 않으면 false를 반환합니다.The IsInitialized property returns true if the DataSet has completed initialization; otherwise it returns false. BeginInit 의 초기화를 시작하는 DataSet메서드는 IsInitializedfalse로 설정하고,The BeginInit method, which begins the initialization of a DataSet, sets IsInitialized to false. EndInit 의 초기화를 끝내는 DataSet메서드는 이를 true로 설정합니다.The EndInit method, which ends the initialization of the DataSet, sets it to true. 이러한 메서드는 Visual Studio 디자인 환경에서 다른 구성 요소에 사용 DataSet 되는를 초기화 하는 데 사용 됩니다.These methods are used by the Visual Studio design environment to initialize a DataSet that is being used by another component. 사용자 코드에는 일반적으로 이러한 메서드를 사용하지 않습니다.You will not commonly use them in your code.

Disposed 이벤트The Disposed Event

DataSetMarshalByValueComponent 메서드와 Dispose 이벤트를 모두 노출하는 Disposed 클래스에서 파생됩니다.DataSet is derived from the MarshalByValueComponent class, which exposes both the Dispose method and the Disposed event. 이벤트 Disposed 는 구성 요소에서 삭제 된 이벤트를 수신 하는 이벤트 처리기를 추가 합니다.The Disposed event adds an event handler to listen to the disposed event on the component. 메서드가 호출 될 때 Disposed 코드 DataSet 를 실행 하려는 경우의 이벤트를 사용할 수 있습니다. DisposeYou can use the Disposed event of a DataSet if you want to execute code when the Dispose method is called. Dispose에서 사용 MarshalByValueComponent하는 리소스를 해제 합니다.Dispose releases the resources used by the MarshalByValueComponent.

참고

DataSet ISerializable 개체는 에서MarshalByValueComponent 상속 되며 원격을 위해 인터페이스를 지원 합니다. DataTableThe DataSet and DataTable objects inherit from MarshalByValueComponent and support the ISerializable interface for remoting. 이 두 개체는 원격으로 연결할 수 있는 유일한 ADO.NET 개체입니다.These are the only ADO.NET objects that can be remoted. 자세한 내용은 .Net Remoting을 참조 하십시오.For more information, see .NET Remoting.

DataSet작업할 때 사용할 수 있는 다른 이벤트에 대 한 자세한 내용은 DataTable 이벤트 처리DataAdapter 이벤트 처리를 참조 하세요.For information about other events available when working with a DataSet, see Handling DataTable Events and Handling DataAdapter Events.

참고자료See also