Udostępnij za pośrednictwem


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 truewartość . 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 DataSetobiektu , ustawia IsInitialized wartość false. Metoda EndInit , która kończy inicjowanie DataSetklasy , 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.

Zobacz też