Hantera datauppsättningshändelser
Objektet DataSet innehåller tre händelser: Disposed, Initializedoch MergeFailed.
MergeFailed-händelsen
Den vanligaste händelsen för DataSet
objektet är MergeFailed
, som utlöses när schemat för de DataSet
objekt som sammanfogas står i konflikt. Detta inträffar när ett mål och en källa DataRow har samma primärnyckelvärde och egenskapen EnforceConstraints är inställd på true
. Om till exempel de primära nyckelkolumnerna i en tabell som sammanfogas är desamma mellan tabellerna i de två DataSet
objekten genereras ett undantag och händelsen MergeFailed
aktiveras. Objektet MergeFailedEventArgs som skickas till MergeFailed
händelsen har en Conflict egenskap som identifierar konflikten i schemat mellan de två DataSet
objekten och en Table egenskap som identifierar namnet på tabellen i konflikt.
Följande kodfragment visar hur du lägger till en händelsehanterare för MergeFailed
händelsen.
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);
}
Den initierade händelsen
Händelsen Initialized inträffar när DataSet
konstruktorn initierar en ny instans av DataSet
.
Egenskapen IsInitialized returnerar true
om DataSet
initieringen har slutförts. Annars returneras false
. Metoden BeginInit , som påbörjar initieringen av en DataSet
, anger IsInitialized till false
. Metoden EndInit , som avslutar initieringen av DataSet
, anger den till true
. Dessa metoder används av Visual Studio-designmiljön för att initiera en som används av en DataSet
annan komponent. Du använder dem inte ofta i koden.
Den borttagna händelsen
DataSet
härleds från MarshalByValueComponent klassen, vilket exponerar både Dispose metoden och Disposed händelsen. Händelsen Disposed lägger till en händelsehanterare för att lyssna på den borttagna händelsen på komponenten. Du kan använda Disposed händelsen för en DataSet
om du vill köra kod när Dispose metoden anropas. Dispose släpper de resurser som används av MarshalByValueComponent.
Kommentar
Objekten DataSet
och DataTable
ärver från MarshalByValueComponent och stöder ISerializable gränssnittet för fjärrkommunikation. Det här är det enda ADO.NET objekt som kan fjärranslutas. Mer information finns i .NET-fjärrkommunikation.
Information om andra händelser som är tillgängliga när du arbetar med en finns i Hantera DataTable-händelser och Hantera DataAdapter-händelser.DataSet