Comment : valider les données au cours des modifications de lignes

Mise à jour : novembre 2007

La validation des données est le processus de vérification des valeurs entrées dans les données de votre application. C'est une méthode conseillée pour vérifier ces valeurs avant d'envoyer des mises à jour au magasin de données sous-jacent. Cela permet de réduire le nombre potentiel d'allers-retours entre une application et le magasin de données.

Remarque :

Le Concepteur de DataSet crée une classe partielle où la logique de validation peut être ajoutée à un groupe de données. Le groupe de données généré par le concepteur ne supprime ou ne modifie aucun code dans la classe partielle.

Vous pouvez valider des données lorsque les valeurs contenues dans une ligne de données changent en réponse à l'événement RowChanging. Lorsqu'il est déclenché, cet événement passe un argument d'événement (e.Row) qui contient les valeurs proposées pour chaque colonne de la ligne actuelle. Selon le contenu de chaque colonne dans e.Row, vous pouvez :

  • Accepter la valeur proposée en n'effectuant aucune opération.

  • Refuser la valeur proposée en définissant l'erreur de colonne (SetColumnError) à partir du gestionnaire d'événements de modification de ligne.

  • Vous pouvez éventuellement utiliser un contrôle ErrorProvider pour afficher un message d'erreur à l'attention de l'utilisateur. Pour plus d'informations, consultez ErrorProvider, composant (Windows Forms).

Vous pouvez également effectuer la validation pendant les modifications de colonnes individuelles à l'aide de l'événement ColumnChanging. Pour plus d'informations, consultez Comment : valider les données au cours des modifications de colonnes.

Validation de données dans l'événement RowChanging

Vous pouvez écrire le code permettant de vérifier que chaque colonne que vous souhaitez valider contient des données répondant aux exigences de votre application. Si la valeur proposée n'est pas acceptable, définissez la colonne afin d'indiquer qu'elle contient une erreur. Les exemples suivants déclenchent une erreur de colonne lorsque la colonne Quantity a une valeur inférieure ou égale à 0. Les gestionnaires d'événements de modification de ligne doivent se présenter comme suit.

Pour valider des données lors de la modification d'une ligne (Visual Basic)

  1. Ouvrez votre groupe de données dans le Concepteur de DataSet. Pour plus d'informations, consultez Comment : ouvrir un groupe de données dans le Concepteur de DataSet.

  2. Double-cliquez sur la barre de titre de la table que vous souhaitez valider. Cette action crée automatiquement le gestionnaire d'événements RowChanging du DataTable dans le fichier de classe partielle du groupe de données.

    Conseil :

    Double-cliquez à gauche du nom de table pour créer le gestionnaire d'événements de modification de ligne. Si vous double-cliquez sur le nom de table, vous pouvez le modifier.

    Private Sub Order_DetailsDataTable_Order_DetailsRowChanging(ByVal sender As System.Object, _
        ByVal e As Order_DetailsRowChangeEvent) Handles Me.Order_DetailsRowChanging
    
        If CType(e.Row.Quantity, Short) <= 0 Then
            e.Row.SetColumnError("Quantity", "Quantity must be greater than 0")
        Else
            e.Row.SetColumnError("Quantity", "")
        End If
    End Sub
    

Pour valider des données lors de la modification d'une ligne (C#)

  1. Ouvrez votre groupe de données dans le Concepteur de DataSet. Pour plus d'informations, consultez Comment : ouvrir un groupe de données dans le Concepteur de DataSet.

  2. Double-cliquez sur la barre de titre de la table que vous souhaitez valider. Cette action crée un fichier de classe partielle pour le DataTable.

    Remarque :

    Le Concepteur de DataSet ne crée pas automatiquement de gestionnaire d'événements pour l'événement RowChanging. Vous devez créer une méthode pour gérer l'événement RowChanging et exécuter le code permettant de raccorder l'événement dans la méthode d'initialisation de la table.

  3. Copiez le code suivant dans la classe partielle :

        public override void EndInit()
        {
            base.EndInit();
            Order_DetailsRowChanging += TestRowChangeEvent;
        }
    
        public void TestRowChangeEvent(object sender, Order_DetailsRowChangeEvent e)
        {
            if ((short)e.Row.Quantity <= 0)
            {
                e.Row.SetColumnError("Quantity", "Quantity must be greater than 0");
            }
            else
            {
                e.Row.SetColumnError("Quantity", "");
            }
        }
    

Voir aussi

Tâches

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

Comment : valider les données au cours des modifications de colonnes

Procédure pas à pas : affichage de données sur un formulaire dans une application Windows

Concepts

Nouveautés des données

Vue d'ensemble de TableAdapter

Concepteur de DataSet

Vue d'ensemble des sources de données

Référence

Sources de données, fenêtre

Événements (Guide de programmation C#)

Autres ressources

Procédures pas à pas relatives aux données

Validation des données