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.