Partager via


Gestion des événements DataSet (ADO.NET)

L'objet DataSet fournit trois événements : Disposed, Initialized et 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 lorsque la méthode Dispose est appelée. Dispose libère les ressources utilisées par le MarshalByValueComponent.

RemarqueRemarque

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, voir Remote Objects.

Pour plus d'informations sur les autres événements disponibles lors de l'utilisation d'un DataSet, voir Gestion des événements DataTable (ADO.NET) et Gestion des événements DataAdapter (ADO.NET).

Voir aussi

Autres ressources

Objets DataSet, DataTable et DataView (ADO.NET)

Validation des données

Extraction et modification de données dans ADO.NET