Obsługa zdarzeń elementu DataSet
Obiekt DataSet zawiera trzy zdarzenia: Disposed, Initializedi MergeFailed.
Zdarzenie MergeFailed
Najczęściej używane zdarzenie DataSet
obiektu to MergeFailed
, które jest wywoływane, gdy schemat DataSet
scalonych obiektów jest w konflikcie. Dzieje się tak, gdy element docelowy i źródło DataRow mają taką samą wartość klucza podstawowego, a właściwość jest ustawiona EnforceConstraints na true
wartość . Jeśli na przykład kolumny klucza podstawowego tabeli scalonej są takie same między tabelami w dwóch DataSet
obiektach, zgłaszany jest wyjątek i MergeFailed
zgłaszane jest zdarzenie. 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 DataSet
przez konstruktor nowego wystąpienia klasy DataSet
.
Właściwość IsInitialized zwraca true
wartość , jeśli DataSet
ukończono inicjowanie; w przeciwnym razie zwraca wartość false
. Metoda BeginInit , która rozpoczyna inicjowanie DataSet
obiektu , ustawia IsInitialized wartość false
. Metoda EndInit , która kończy inicjowanie DataSet
klasy , 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 usunięte
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 po wywołaniu Dispose metody, możesz użyć Disposed zdarzenia DataSet
. Dispose zwalnia zasoby używane przez program MarshalByValueComponent.
Uwaga
Obiekty DataSet
i DataTable
dziedziczą i MarshalByValueComponent obsługują ISerializable interfejs do komunikacji zdalnie. 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 elementem DataSet
, zobacz Obsługa zdarzeń DataTable i obsługa zdarzeń dataAdapter.