Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Obiekt DataSet zawiera trzy zdarzenia: Disposed, Initializedi MergeFailed.
Zdarzenie MergeFailed
Najczęściej używane zdarzenie dla obiektu DataSet
to MergeFailed
, które jest wywoływane, gdy schemat obiektów DataSet
, które są scalane, jest w konflikcie. Dzieje się tak, gdy element docelowy i źródło DataRow mają taką samą wartość klucza podstawowego, a właściwość EnforceConstraints jest ustawiona na true
wartość. Na przykład, jeśli kolumny klucza podstawowego tabeli scalanej są takie same między tabelami w dwóch obiektach DataSet
, zgłoszony zostaje wyjątek i podnoszone jest zdarzenie MergeFailed
. Obiekt MergeFailedEventArgs przekazany do MergeFailed
zdarzenia ma Conflict właściwość, która identyfikuje konflikt w schemacie między dwoma DataSet
obiektami i właściwość identyfikującą Table nazwę tabeli w konflikcie.
Poniższy fragment kodu pokazuje, jak dodać program obsługi zdarzeń dla MergeFailed
zdarzenia.
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);
}
Zdarzenie zainicjowane
Zdarzenie Initialized występuje po zainicjowaniu nowego wystąpienia DataSet
przez konstruktor DataSet
.
Właściwość IsInitialized zwraca true
, jeśli DataSet
zostało zakończone inicjowanie; w przeciwnym razie zwraca false
. Metoda BeginInit, która inicjuje DataSet
, ustawia IsInitialized na false
. Metoda EndInit, która kończy inicjowanie klasy DataSet
, ustawia ją na true
. Te metody są używane przez środowisko projektowe programu Visual Studio do inicjowania DataSet
elementu używanego przez inny składnik. Nie będziesz ich często używać w kodzie.
Zdarzenie zakończone
DataSet
pochodzi z MarshalByValueComponent klasy, która uwidacznia zarówno metodę Dispose , jak i Disposed zdarzenie. Zdarzenie Disposed dodaje procedurę obsługi zdarzeń do nasłuchiwania usuniętego zdarzenia w składniku. Jeśli chcesz wykonać kod podczas wywołania metody Disposed, możesz użyć zdarzenia DataSet
obiektu Dispose.
Dispose zwalnia zasoby używane przez program MarshalByValueComponent.
Uwaga / Notatka
Obiekty DataSet
i DataTable
dziedziczą po MarshalByValueComponent i obsługują interfejs ISerializable do komunikacji zdalnej. Są to jedyne obiekty ADO.NET, które mogą być zdalne. Aby uzyskać więcej informacji, zobacz Komunikacja zdalna platformy .NET.
Aby uzyskać informacje o innych zdarzeniach dostępnych podczas pracy z DataSet
, zobacz Obsługa zdarzeń DataTable i Obsługa zdarzeń DataAdapter.