Vue d'ensemble de la validation des données
Mise à jour : novembre 2007
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).
Remarque : |
---|
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 la table pour laquelle vous souhaitez créer une 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. |
Validation des données
Dans un groupe de données, la validation peut être effectuée :
En créant votre validation propre à une application, capable de vérifier les données lors de la modification des valeurs dans une colonne de données individuelle. Pour plus d'informations, consultez Comment : valider les données au cours des modifications de colonnes.
En créant votre validation propre à une application, capable de vérifier les données pendant la modification des valeurs alors que l'intégralité d'une ligne de données est modifiée. Pour plus d'informations, consultez Comment : valider les données au cours des modifications de lignes.
En créant des clés, des contraintes uniques, etc. comme partie de la définition de schéma du groupe de données. Pour plus d'informations sur la façon d'incorporer la validation dans la définition de schéma, consultez Comment : définir une colonne de données comme clé primaire et Comment : restreindre une colonne de données pour contenir des valeurs uniques.
En définissant les propriétés de l'objet DataColumn, telles que MaxLength, AllowDBNull et Unique.
Lorsqu'une modification est apportée à un enregistrement, plusieurs événements sont déclenchés par l'objet DataTable :
Les événements ColumnChanging et ColumnChanged sont déclenchés pendant et après chaque modification d'une colonne individuelle. L'événement ColumnChanging est utile lorsque vous souhaitez valider les modifications dans des colonnes particulières. Les informations relatives à la modification proposée sont passées comme argument avec l'événement. Pour plus d'informations, consultez Comment : valider les données au cours des modifications de colonnes.
Les événements RowChanging et RowChanged sont déclenchés pendant et après chaque modification d'une ligne. L'événement RowChanging est un événement plus général. Il indique simplement qu'une modification est en cours dans la ligne, sans spécifier la colonne concernée. Pour plus d'informations, consultez Comment : valider les données au cours des modifications de lignes.
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.
Remarque : |
---|
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 |
---|---|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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
Concepts
Vue d'ensemble de TableAdapter
Vue d'ensemble des sources de données