Dil

DataSet Olaylarını İşleme

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

MergeFailed Olayı

DataSet nesnesinin en yaygın olarak kullanılan olayı, birleştirilmekte olan MergeFailed nesnelerin şemaları çakıştığında tetiklenen DataSet 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 Conflict nesne arasındaki şemadaki çakışmayı tanımlayan bir DataSet özelliğe ve çakışan tablonun adını tanımlayan bir Table özelliğe sahiptir.

Aşağıdaki kod parçası, MergeFailed olayı için bir olay işleyicisinin 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 DataSet sınıfının yeni bir örneğini başlatmasından sonra DataSet gerçekleşir.

IsInitialized özelliği, başlatma tamamlandıysa true döndürürDataSet; aksi takdirde döndürürfalse. BeginInit yöntem, bir DataSet öğesinin başlatılmasını başlatır ve IsInitialized'yi false olarak ayarlar. EndInit yönteminin başlatılmasını sonlandıran, DataSet'yi true olarak ayarlar. 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.

Yapılmış Olay

DataSet, MarshalByValueComponent sınıfından türetilmiştir ve hem Dispose yöntemini hem de Disposed olayını kullanıma sunar. Olay, Disposed bileşende atılan olayı dinlemek için bir olay işleyicisi ekler. Disposed yöntemini çağırdığınızda kod yürütmek istiyorsanız, DataSet olayını Dispose kullanabilirsiniz. Dispose tarafından kullanılan kaynakları MarshalByValueComponent serbest bırakır.

Uyarı

DataSet ve DataTable nesneleri, MarshalByValueComponent sınıfından devralır ve uzaktan iletişim için ISerializable arabirimini 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 bakınız