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 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. Dies tritt auf, wenn ein Ziel und eine Quelle DataRow denselben Primärschlüsselwert aufweisen und die EnforceConstraints-Eigenschaft auf true festgelegt ist. Wenn beispielsweise die Primärschlüsselspalten einer zusammengeführten Tabelle zwischen den Tabellen in den beiden DataSet Objekten identisch sind, wird eine Ausnahme ausgelöst, und das MergeFailed Ereignis wird ausgelöst. Das MergeFailedEventArgs an das MergeFailed Ereignis übergebene Objekt verfügt über eine Conflict Eigenschaft, die den Konflikt im Schema zwischen den beiden DataSet Objekten identifiziert, und eine Table Eigenschaft, die den Namen der Tabelle in Konflikt identifiziert.
Das folgende Codefragment veranschaulicht das Hinzufügen eines Ereignishandlers für das MergeFailed Ereignis.
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 initialisierte Ereignis
Das Initialized-Ereignis tritt auf, nachdem der Konstruktor von DataSet eine neue Instanz von DataSet initialisiert hat.
Die IsInitialized-Eigenschaft gibt true zurück, wenn die DataSet-Initialisierung abgeschlossen ist; andernfalls gibt sie false zurück. Die BeginInit-Methode, die die Initialisierung eines DataSet beginnt, setzt IsInitialized auf false. Die EndInit-Methode, die die Initialisierung des DataSet beendet, legt dieses auf true fest. Diese Methoden werden von der Visual Studio-Entwurfsumgebung verwendet, um ein DataSet von einer anderen Komponente verwendetes Element zu initialisieren. Sie werden sie nicht häufig in Ihrem Code verwenden.
Das "Disposed"-Ereignis
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 in der Komponente auf das Eintreten des Disposed-Ereignisses lauscht. Sie können das Disposed Ereignis eines DataSet Ereignisses verwenden, wenn Sie Code ausführen möchten, wenn die Dispose Methode aufgerufen wird.
Dispose gibt die von der 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 entfernt werden können. Weitere Informationen finden Sie unter .NET Remoting.
Informationen zu anderen Ereignissen, die beim Arbeiten mit einem DataSetEreignis verfügbar sind, finden Sie unter Behandeln von DataTable-Ereignissen und Behandeln von DataAdapter-Ereignissen.