DataSet Olaylarını İşleme
DataSet nesnesi üç olay sağlar: Disposed, Initializedve MergeFailed.
MergeFailed Olayı
Nesnenin DataSet
en yaygın olarak kullanılan olayı, MergeFailed
birleş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 true
ayarlandığı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, MergeFailedEventArgs MergeFailed
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 DataSet
ardı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ı DataSet
başlatan yöntemi olarak ayarlır IsInitialized false
. EndInit yönteminin başlatılmasını DataSet
sona erdiren yöntemi, olarak true
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.
Atılan Olay
DataSet
hem 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.