Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das DataSet-Objekt stellt die folgenden drei Ereignisse bereit: Disposed, Initialized und MergeFailed.
Das "MergeFailed"-Ereignis
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. Zu einem solchen Konflikt kommt es, wenn eine Ziel- und eine Quell-DataRow den gleichen Primärschlüsselwert besitzen und die EnforceConstraints-Eigenschaft auf true gesetzt ist. 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. 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.
Das folgende Codefragment zeigt, wie ein Ereignishandler für das MergeFailed-Ereignis hinzugefügt werden kann.
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"-Ereignis
Das Initialized-Ereignis tritt ein, nachdem der DataSet-Konstruktor eine neue Instanz vom DataSet initialisiert hat.
Die IsInitialized-Eigenschaft gibt true zurück, wenn die Initialisierung vom DataSet abgeschlossen wurde. Andernfalls wird false zurückgegeben. Die BeginInit-Methode, die die Initialisierung eines DataSet startet, setzt IsInitialized auf false. Durch die EndInit-Methode, die die Initialisierung eines DataSet beendet, wird der Wert auf true gesetzt. Diese Methoden werden von der Visual Studio-Entwicklungsumgebung zum Initialisieren eines DataSet genutzt, das von einer anderen Komponente verwendet wird. Im Normalfall werden Sie diese Methoden in Ihrem Code nicht benötigen.
Das "Disposed"-Ereignis
Das DataSet wird von der MarshalByValueComponent-Klasse abgeleitet, die sowohl die Dispose-Methode als auch das Disposed-Ereignis verfügbar macht. Mit dem Disposed -Ereignis wird ein Ereignishandler hinzugefügt, der die Komponente auf das Eintreten des Disposed-Ereignisses lauscht. Sie können das Disposed -Ereignis eines DataSet verwenden, wenn beim Aufrufen der Dispose -Methode Code ausgeführt werden soll. Dispose gibt die von MarshalByValueComponent verwendeten Ressourcen frei.
Hinweis |
|---|
Das DataSet-Objekt und das DataTable-Objekt erben von MarshalByValueComponent und unterstützen die ISerializable-Schnittstelle für das Remoting.Dies sind die einzigen ADO.NET-Objekte, die remotingfähig sind.Weitere Informationen dazu finden Sie unter Remote Objects. |
Informationen zu weiteren verfügbaren Ereignissen beim Arbeiten mit einem DataSet finden Sie unter Behandeln von DataTable-Ereignissen (ADO.NET) und Umgang mit 'DataAdapter'-Ereignissen (ADO.NET).
Hinweis