Behandeln von DataSet-EreignissenHandling DataSet Events

Das DataSet -Objekt stellt die folgenden drei Ereignisse bereit: Disposed, Initializedund MergeFailed.The DataSet object provides three events: Disposed, Initialized, and MergeFailed.

Das "MergeFailed"-EreignisThe MergeFailed Event

Das am häufigsten verwendete Ereignis des DataSet -Objekts ist MergeFailed. Dieses Ereignis wird ausgelöst, wenn sich die Schemas der DataSet -Objekte, die zusammengeführt werden, widersprechen.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. Zu einem solchen Konflikt kommt es, wenn eine Ziel- und eine Quell- DataRow den gleichen Primärschlüsselwert besitzen und die EnforceConstraints -Eigenschaft auf truegesetzt ist.This occurs when a target and source DataRow have the same primary key value, and the EnforceConstraints property is set to true. Wenn z. B. die zusammenzuführenden Primärschlüsselspalten einer Tabelle in den Tabellen der beiden DataSet -Objekte identisch sind, wird eine Ausnahme ausgegeben und das MergeFailed -Ereignis ausgelöst.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. Das MergeFailedEventArgs -Objekt, das an das MergeFailed -Ereignis übergeben wird, besitzt eine Conflict -Eigenschaft, die den Konflikt im Schema der beiden DataSet -Objekte kennzeichnet, sowie eine Table -Eigenschaft, die den Namen der Tabelle mit dem Konflikt angibt.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.

Das folgende Codefragment zeigt, wie ein Ereignishandler für das MergeFailed -Ereignis hinzugefügt werden kann.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);  
}  

Das "Initialized"-EreignisThe Initialized Event

Das Initialized -Ereignis tritt ein, nachdem der DataSet -Konstruktor eine neue Instanz vom DataSetinitialisiert hat.The Initialized event occurs after the DataSet constructor initializes a new instance of the DataSet.

Die IsInitialized -Eigenschaft gibt true zurück, wenn die Initialisierung vom DataSet abgeschlossen wurde. Andernfalls wird falsezurückgegeben.The IsInitialized property returns true if the DataSet has completed initialization; otherwise it returns false. Die BeginInit -Methode, die die Initialisierung eines DataSetstartet, setzt IsInitialized auf false.The BeginInit method, which begins the initialization of a DataSet, sets IsInitialized to false. Durch die EndInit -Methode, die die Initialisierung eines DataSetbeendet, wird der Wert auf truegesetzt.The EndInit method, which ends the initialization of the DataSet, sets it to true. Diese Methoden werden von der Visual Studio-Entwurfs Umgebung verwendet, um eine DataSet zu initialisieren, die von einer anderen Komponente verwendet wird.These methods are used by the Visual Studio design environment to initialize a DataSet that is being used by another component. Im Normalfall werden Sie diese Methoden in Ihrem Code nicht benötigen.You will not commonly use them in your code.

Das "Disposed"-EreignisThe Disposed Event

DasDataSet wird von der MarshalByValueComponent -Klasse abgeleitet, die sowohl die Dispose -Methode als auch das Disposed -Ereignis verfügbar macht.DataSet is derived from the MarshalByValueComponent class, which exposes both the Dispose method and the Disposed event. Das Disposed Ereignis fügt einen Ereignishandler hinzu, der auf das verworfene Ereignis für die Komponente lauscht.The Disposed event adds an event handler to listen to the disposed event on the component. Sie können das Disposed -Ereignis DataSet eines verwenden, wenn Sie Code ausführen möchten, wenn Dispose die-Methode aufgerufen wird.You can use the Disposed event of a DataSet if you want to execute code when the Dispose method is called. DisposeGibt die von MarshalByValueComponentverwendeten Ressourcen frei.Dispose releases the resources used by the MarshalByValueComponent.

Hinweis

Die DataSet - DataTable und-Objekte MarshalByValueComponent erben von und ISerializable unterstützen die-Schnittstelle für Remoting.The DataSet and DataTable objects inherit from MarshalByValueComponent and support the ISerializable interface for remoting. Dies sind die einzigen ADO.NET-Objekte, die remotingfähig sind.These are the only ADO.NET objects that can be remoted. Weitere Informationen finden Sie unter .NET Remoting.For more information, see .NET Remoting.

Informationen zu anderen Ereignissen, die beim Arbeiten mit einem DataSetverfügbar sind, finden Sie unter Verarbeiten von Daten und Verarbeiten von DataAdapter-Ereignissen.For information about other events available when working with a DataSet, see Handling DataTable Events and Handling DataAdapter Events.

Siehe auchSee also