Partager via


Validation de données dans des groupes de données

La validation des données est le processus qui consiste à confirmer que les valeurs entrées dans des objets de données sont conformes aux contraintes contenues dans le schéma d'un groupe de données, ainsi qu'aux règles établies pour votre application. Il peut être utile de valider les données avant d'envoyer des mises à jour à la base de données sous-jacente afin de réduire les erreurs, ainsi que le nombre potentiel de boucles entre une application et la base de données. Vous pouvez confirmer la validité des données écrites dans un groupe de données en créant des contrôles de validation dans le groupe de données lui-même. Le groupe de données peut vérifier les données, quelle que soit la méthode de mise à jour utilisée — directement à l'aide de contrôles dans un formulaire, dans un composant ou d'une autre manière. Étant donné que le groupe de données fait partie de votre application, il représente un emplacement logique pour générer une validation propre à l'application (ce qui évite d'effectuer les mêmes contrôles dans la base de données).

L'emplacement suggéré pour l'ajout de la validation dans votre application est le fichier de classe partielle du groupe de données. Dans Visual Basic ou Visual C#, ouvrez le Concepteur de DataSet et double-cliquez sur la colonne ou sur la table pour laquelle vous souhaitez créer la validation. Cette action crée automatiquement un gestionnaire d'événements ColumnChanging ou RowChanging. Pour plus d'informations, consultez Comment : valider les données au cours des modifications de colonnes ou Comment : valider les données au cours des modifications de lignes. Pour obtenir un exemple complet, consultez Procédure pas à pas : ajout d'une validation à un groupe de données.

Validation des données

Dans un groupe de données, la validation peut être effectuée :

Lorsqu'une modification est apportée à un enregistrement, plusieurs événements sont déclenchés par l'objet DataTable :

Par défaut, chaque modification de colonne déclenche donc quatre événements : les événements ColumnChanging et ColumnChanged pour la colonne particulière en cours de modification, puis les événements RowChanging et RowChanged. Les événements sont déclenchés pour chacune des modifications apportées à la ligne.

Notes

La méthode BeginEdit de la ligne de données désactive les événements RowChanging et RowChanged après chaque modification d'une colonne individuelle. Dans ce cas, l'événement n'est pas déclenché tant que la méthode EndEdit n'a pas été appelée, après quoi les événements RowChanging et RowChanged ne sont déclenchés qu'une fois. Pour plus d'informations, consultez Comment : désactiver les contraintes pendant le remplissage d'un groupe de données.

L'événement que vous choisissez dépend du niveau de granularité souhaité de l'application. S'il vous faut intercepter une erreur dès qu'une colonne est modifiée, générez la validation en utilisant l'événement ColumnChanging. Sinon, utilisez l'événement RowChanging, qui peut provoquer l'interception de plusieurs erreurs en même temps. En outre, si vos données sont structurées de telle sorte que la validation de la valeur d'une colonne dépend du contenu d'une autre colonne, vous devez effectuer votre validation pendant un événement RowChanging.

Lorsque des enregistrements sont mis à jour, l'objet DataTable déclenche des événements auxquels vous pouvez répondre pendant et après la réalisation des modifications.

Si votre application utilise un groupe de données typé, vous pouvez créer des gestionnaires d'événements fortement typés. Cela entraîne l'ajout de quatre événements typés supplémentaires pour lesquels vous pouvez créer des gestionnaires : dataTableNameRowChanging, dataTableNameRowChanged, dataTableNameRowDeleting et dataTableNameRowDeleted. Ces gestionnaires d'événements typés passent un argument comprenant les noms de colonne de votre table, ce qui facilite l'écriture et la lecture du code.

Événements de mise à jour de données

Événement

Description

ColumnChanging

La valeur d'une colonne est en cours de modification. L'événement vous passe la ligne et la colonne, ainsi que la nouvelle valeur proposée.

ColumnChanged

La valeur d'une colonne a été modifiée. L'événement vous passe la ligne et la colonne, ainsi que la valeur proposée.

RowChanging

Les modifications apportées à un objet DataRow sont sur le point d'être validées dans le groupe de données. Si vous n'avez pas appelé la méthode BeginEdit, l'événement RowChanging est déclenché pour chaque modification d'une colonne, immédiatement après le déclenchement de l'événement ColumnChanging. Si vous avez appelé la méthode BeginEdit avant d'effectuer les modifications, l'événement RowChanging n'est déclenché que lorsque vous appelez la méthode EndEdit.

L'événement vous passe la ligne avec une valeur indiquant le type d'action (modification, insertion, etc.) en cours de réalisation.

RowChanged

Une ligne a été modifiée. L'événement vous passe la ligne avec une valeur indiquant le type d'action (modification, insertion, etc.) en cours de réalisation.

RowDeleting

Une ligne est en cours de suppression. L'événement vous passe la ligne avec une valeur indiquant le type d'action (suppression) en cours de réalisation.

RowDeleted

Une ligne a été supprimée. L'événement vous passe la ligne avec une valeur indiquant le type d'action (suppression) en cours de réalisation.

Les événements ColumnChanging, RowChanging et RowDeleting sont déclenchés pendant la procédure de mise à jour. Vous pouvez les utiliser pour valider des données ou effectuer d'autres types de traitement. Les mises à jour étant effectuées pendant ces événements, vous pouvez annuler la mise à jour en levant une exception, ce qui interrompt les modifications.

Les événements ColumnChanged, RowChanged et RowDeleted sont des événements de notification qui sont déclenchés lorsque la mise à jour a été effectuée correctement. Ils vous permettent de réaliser d'autres actions à partir d'une mise à jour réussie.

Voir aussi

Tâches

Comment : établir une connexion à des données d'une base de données

Comment : valider des données dans le contrôle DataGridView Windows Forms

Comment : afficher des icônes d'erreur pour la validation de formulaire à l'aide du composant ErrorProvider Windows Forms

Concepts

Concepteur de DataSet