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 true
hodnotu . 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 MergeFailed
má Conflict 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 Dispose Disposed 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 DataSet
DataTable naleznete v tématu Zpracování událostí datové tabulky a zpracování událostí objektu DataAdapter.