Dela via


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

Se även