Share via


DataSet Olaylarını İşleme

DataSet nesnesi üç olay sağlar: Disposed, Initializedve MergeFailed.

MergeFailed Olayı

Nesnenin DataSet en yaygın olarak kullanılan olayı, MergeFailedbirleştirilmekte olan nesnelerin şeması DataSet çakıştığında tetiklenen olayıdır. Bir hedef ve kaynak DataRow aynı birincil anahtar değerine sahip olduğunda ve EnforceConstraints özelliği olarak trueayarlandığında bu durum oluşur. Örneğin, birleştirilen tablonun birincil anahtar sütunları iki DataSet nesnedeki tablolar arasında aynıysa, bir özel durum oluşturulur ve MergeFailed olay tetiklenir. Olaya geçirilen nesne, MergeFailedEventArgsMergeFailed iki DataSet nesne arasındaki şemadaki çakışmayı tanımlayan bir Conflict özelliğe ve çakışan tablonun adını tanımlayan bir Table özelliğe sahiptir.

Aşağıdaki kod parçası, olay için bir olay işleyicisinin MergeFailed nasıl ekleneceğini gösterir.

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);  
}  

Başlatılan Olay

Olay, Initialized oluşturucunun yeni bir örneğini başlatmasının DataSetardından DataSet gerçekleşir.

IsInitialized özelliği, başlatma tamamlandıysa DataSet döndürürtrue; aksi takdirde döndürürfalse. bir BeginInit öğesinin başlatılmasını DataSetbaşlatan yöntemi olarak ayarlır IsInitializedfalse. EndInit yönteminin başlatılmasını DataSetsona erdiren yöntemi, olarak trueayarlar. Bu yöntemler, Visual Studio tasarım ortamı tarafından başka bir bileşen tarafından kullanılan bir DataSet öğesini başlatmak için kullanılır. Bunları genellikle kodunuzda kullanmayacaksınız.

Atılan Olay

DataSethem yöntemini hem de Dispose olayını kullanıma sunan sınıfından Disposed türetilirMarshalByValueComponent. Olay, Disposed bileşende atılan olayı dinlemek için bir olay işleyicisi ekler. Yöntemi çağrıldığında Dispose kod yürütmek istiyorsanız olayını DataSet kullanabilirsinizDisposed. Dispose tarafından MarshalByValueComponentkullanılan kaynakları serbest bırakır.

Not

DataSet ve DataTable nesneleri içinden MarshalByValueComponent devralır ve uzaktan iletişim arabirimini ISerializable destekler. Bunlar, uzaktan kullanılabilecek tek ADO.NET nesnelerdir. Daha fazla bilgi için bkz . .NET Uzaktan İletişimi.

ile DataSetçalışırken kullanılabilen diğer olaylar hakkında bilgi için bkz . DataTable Olaylarını İşleme ve DataAdapter Olaylarını İşleme.

Ayrıca bkz.