Adathalmazesemények kezelése
Az DataSet objektum három eseményt biztosít: Disposed, Initializedés MergeFailed.
A MergeFailed esemény
Az objektum leggyakrabban használt eseménye DataSet
az MergeFailed
, amely akkor jön létre, ha az egyesítendő objektumok sémája DataSet
ütközik. Ez akkor fordul elő, ha egy célnak és forrásnak DataRow ugyanaz az elsődleges kulcsértéke, és a EnforceConstraints tulajdonság értéke true
a következő. Ha például egy egyesítendő tábla elsődleges kulcsoszlopai megegyeznek a két DataSet
objektum táblái között, kivétel keletkezik, és az MergeFailed
esemény létrejön. Az MergeFailedEventArgs eseménynek MergeFailed
átadott objektumnak van egy Conflict tulajdonsága, amely azonosítja a két DataSet
objektum közötti sémaütközést, valamint egy Table tulajdonságot, amely azonosítja az ütközésben lévő tábla nevét.
Az alábbi kódrészlet bemutatja, hogyan adhat hozzá eseménykezelőt az MergeFailed
eseményhez.
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);
}
Az inicializált esemény
Az Initialized esemény azután következik be, hogy a DataSet
konstruktor inicializálja a DataSet
.
A IsInitialized tulajdonság akkor ad true
vissza, ha az DataSet
inicializálás befejeződött, ellenkező esetben ad vissza false
. A BeginInit metódus, amely egy inicializálását kezdi, a következőre állítjaDataSet
IsInitialized: false
. A EndInit metódus, amely befejezi az inicializálását DataSet
, a következőre true
állítja: . Ezeket a metódusokat a Visual Studio tervezési környezete használja egy DataSet
másik összetevő által használt eszköz inicializálására. Ezeket általában nem fogja használni a kódban.
A megsemmisített esemény
DataSet
az osztályból MarshalByValueComponent származik, amely a Dispose metódust és az eseményt Disposed is elérhetővé teszi. Az Disposed esemény egy eseménykezelőt ad hozzá, amely figyeli az összetevőn lévő elvetett eseményt. Ha a metódus meghívásakor kódot Dispose szeretne végrehajtani, használhatja Disposed egy esemény eseményétDataSet
. Dispose A felszabadítja a . által használt erőforrásokat MarshalByValueComponent.
Feljegyzés
Az DataSet
és DataTable
az objektumok öröklődnek, MarshalByValueComponent és támogatják az ISerializable újraegyezés felületét. Ezek az egyetlen távoli ADO.NET objektumok. További információ: .NET-újraküldés.
Az adattáblázati DataSet
események kezelése és a DataAdapter-események kezelése című témakörben talál további információt az egyéb eseményekről.