Zpracování událostí datové sady

Objekt DataSet poskytuje tři události: Disposed, Initializeda MergeFailed.

Událost MergeFailed

Nejčastěji používanou událostí objektu DataSet je MergeFailed, která se vyvolá při konfliktu schématu DataSet sloučených objektů. K tomu dochází v případě, že cíl a zdroj DataRow mají stejnou hodnotu primárního klíče a EnforceConstraints vlastnost je nastavena na truehodnotu . Pokud jsou například sloupce primárního klíče sloučené tabulky mezi tabulkami ve dvou DataSet objektech stejné, vyvolá se výjimka a MergeFailed vyvolá se událost. Objekt MergeFailedEventArgs předaný události MergeFailedConflict vlastnost, která identifikuje konflikt ve schématu mezi těmito dvěma DataSet objekty a Table vlastnost, která identifikuje název tabulky v konfliktu.

Následující fragment kódu ukazuje, jak přidat obslužnou rutinu MergeFailed události pro událost.

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);  
}  

Inicializovaná událost

Událost Initialized nastane po DataSet konstruktor inicializuje novou instanci DataSet.

Vlastnost IsInitialized vrátí true , pokud byla DataSet dokončena inicializace; jinak vrátí false. Metoda BeginInit , která začíná inicializace DataSet, nastaví IsInitialized na false. Metoda EndInit , která končí inicializaci DataSet, nastaví na true. Tyto metody používají prostředí návrhu sady Visual Studio k inicializaci DataSet , kterou používá jiná komponenta. V kódu je obvykle nebudete používat.

Událost Disposed

DataSet je odvozena z MarshalByValueComponent třídy, která zveřejňuje metodu DisposeDisposed i událost. Událost Disposed přidá obslužnou rutinu události pro naslouchání události disposed v komponentě. Událost události DataSet můžete použítDisposed, pokud chcete spustit kód při Dispose zavolání metody. Dispose uvolní prostředky používané nástrojem MarshalByValueComponent.

Poznámka:

Objekty DataSet dědí z MarshalByValueComponent rozhraní vzdálené komunikace a podporují hoISerializable.DataTable Jedná se o jediné ADO.NET objekty, které je možné vzdáleně. Další informace najdete v tématu Vzdálené komunikace .NET.

Informace o dalších událostech dostupných při práci s objektem DataSetDataTable naleznete v tématu Zpracování událostí datové tabulky a zpracování událostí objektu DataAdapter.

Viz také