Gestion des événements de DataSet

L'objet DataSet fournit trois événements : Disposed, Initializedet MergeFailed.

Événement MergeFailed

L'événement le plus couramment utilisé de l'objet DataSet est MergeFailed, qui se déclenche en cas de conflit au niveau du schéma des objets DataSet en cours de fusion. Cela se produit lorsque des DataRow cible et source possèdent la même valeur de clé primaire et que la propriété EnforceConstraints a la valeur true. Par exemple, si les colonnes de clé primaire d'une table en cours de fusion sont identiques entre les tables des deux objets DataSet , une exception est levée et l'événement MergeFailed est déclenché. L'objet MergeFailedEventArgs passé à l'événement MergeFailed possède une propriété Conflict qui identifie le conflit au niveau du schéma entre les deux objets DataSet et une propriété Table qui identifie le nom de la table en conflit.

Le fragment de code ci-dessous montre comment ajouter un gestionnaire d'événements pour l'événement MergeFailed .

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

Événement Initialized

L'événement Initialized se produit après que le constructeur DataSet a initialisé une nouvelle instance du DataSet.

La propriété IsInitialized retourne true si le DataSet a terminé l'initialisation ; dans le cas contraire, elle retourne false. La méthode BeginInit , qui commence l'initialisation d'un DataSet, affecte à la propriété IsInitialized la valeur false. La méthode EndInit , qui termine l'initialisation du DataSet, lui affecte la valeur true. Ces méthodes sont utilisées par l’environnement de conception Visual Studio pour initialiser un DataSet utilisé par un autre composant. Vous ne les utiliserez pas couramment dans votre code.

Événement Disposed

DataSet est dérivé de la classe MarshalByValueComponent , qui expose la méthode Dispose et l'événement Disposed . L’événement Disposed ajoute un gestionnaire d’événements pour écouter l’événement libéré sur le composant. Vous pouvez utiliser l’événement Disposed d’un DataSet si vous voulez exécuter du code quand la méthode Dispose est appelée. Dispose libère les ressources utilisées par le MarshalByValueComponent.

Notes

Les objets DataSet et DataTable héritent de MarshalByValueComponent et prennent en charge l’interface ISerializable pour la communication à distance. Ce sont les seuls objets ADO.NET qui peuvent être exécutés à distance. Pour plus d’informations, consultez .NET Remoting.

Pour plus d’informations sur les autres événements disponibles lors de l’utilisation d’un DataSet, consultez Gestion des événements de DataTable et Gestion des événements DataAdapter.

Voir aussi