Partager via


Procédure pas à pas : ajout d'une validation à une application de données multicouche

La validation de données est le processus consistant à confirmer que les valeurs entrées dans des objets de données (par exemple, classes DataTables ou LINQ to SQL) se conforment aux contraintes du schéma d'un objet. La validation garantit également la conformité avec les règles établies pour l'application. Valider les données avant d'envoyer des mises à jour à la base de données sous-jacente est une méthode conseillée pour réduire les erreurs. Cette opération réduit également le nombre potentiel d'allers-retours entre une application et la base de données.

Cette procédure pas à pas fournit des instructions pour ajouter une validation à une application multicouche (solution créée dans la rubrique Procédure pas à pas : création d'une application de données multicouche).

Dans cette procédure pas à pas, vous allez apprendre à effectuer les tâches suivantes :

Composants requis

Pour exécuter cette procédure pas à pas, vous devez disposer des éléments suivants :

Notes

Il est possible que pour certains des éléments de l'interface utilisateur de Visual Studio, votre ordinateur affiche des noms ou des emplacements différents de ceux indiqués dans les instructions suivantes. L'édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d'informations, consultez Customizing Development Settings in Visual Studio.

Ouverture de la solution NTierWalkthrough

Pour ouvrir la solution NTierWalkthrough

Ajout d'une validation pour vérifier les données pendant une modification de colonne individuelle

Cette procédure ajoutera une validation pour vérifier que la valeur de la colonne OrderDate d'une nouvelle commande est la date du jour ou une date antérieure. Dans le cadre de cette application, la colonne OrderDate ne peut pas avoir une date à venir ; les futures commandes ne sont pas autorisées.

Pour ajouter la validation et vérifier la valeur entrée dans la colonne OrderDate

  1. Ouvrez le groupe de données dans le Création et modification de Datasets typés en double-cliquant sur le fichier NorthwindDataSet.xsd du projet DataAccessTier dans l'Explorateur de solutions.

  2. Double-cliquez sur la colonne OrderDate de la table Orders dans le concepteur. Cette action entraîne la création du gestionnaire d'événements ColumnChanging.

    Notes

    Le Concepteur de DataSet ne crée pas automatiquement de gestionnaire d'événements pour l'événement C#.Le code nécessaire à la gestion de l'événement en C# est inclus plus loin dans cette procédure.SampleColumnChangingEvent est créé puis s'abonne à l'événement ColumnChanging dans la méthode EndInit.

  3. Ajoutez le code pour vérifier que e.ProposedValue pour la colonne OrderDate contient la date du jour ou une date antérieure. Si la valeur proposée n'est pas valide, définissez la colonne afin d'indiquer qu'elle contient une erreur.

    L'exemple de code suivant vérifie que la colonne OrderDate colonne contient la date du jour ou une date antérieure. Si la valeur OrderDate est ultérieure à la date du jour, une erreur est affectée à la colonne OrderDate. La clause Else efface l'erreur si la colonne OrderDate contient la date du jour ou une date antérieure.

    Collez le code Visual Basic dans le gestionnaire d'événements ColumnChanging. Collez le code C# dans la déclaration de classe partielle OrdersDataTable.

    If (e.Column.ColumnName = Me.OrderDateColumn.ColumnName) Then
        If CType(e.ProposedValue, DateTime) > Today Then
            e.Row.SetColumnError(e.Column, "OrderDate cannot be in the future")
        Else
            e.Row.SetColumnError(e.Column, "")
        End If
    End If
    
    // Replace the NorthwindDataSet partial class with the following:
    public partial class NorthwindDataSet
    {
        partial class OrdersDataTable
        {
            public override void EndInit()
            {
                base.EndInit();
                // Configure the ColumnChanging event
                // to call the SampleColumnChangingEvent method.
                ColumnChanging += SampleColumnChangingEvent;
            }
    
            public void SampleColumnChangingEvent(object sender, System.Data.DataColumnChangeEventArgs e)
            {
                if (e.Column.ColumnName == OrderDateColumn.ColumnName)
                {
                    if ((System.DateTime)e.ProposedValue > System.DateTime.Today)
                    {
                        e.Row.SetColumnError("OrderDate", " OrderDate cannot be in the future");
                    }
                    else
                    {
                        e.Row.SetColumnError("OrderDate", "");
                    }
                }
    
            }
        }
    }
    

Test de l'application

Pour tester l'application, remplacez la valeur de la colonne OrderDate par une date qui n'est pas valide.

Pour tester l'application

  1. Appuyez sur F5.

  2. Les données des tables Customers et Orders apparaissent sur le formulaire.

  3. Dans le DataGridView qui contient les commandes, modifiez la valeur de la colonne OrderDate (de n'importe quel enregistrement) pour préciser la date de demain.

  4. Naviguez hors de la ligne pour accepter la modification.

    La validation échoue et une icône d'erreur apparaît dans la cellule OrderDate qui contient la valeur non valide.

  5. Positionnez le pointeur de la souris sur l'icône d'erreur pour afficher le texte d'erreur.

  6. Fermez le formulaire.

Étapes suivantes

Selon les spécifications de votre application, vous pouvez effectuer plusieurs étapes après avoir ajouté des validations à une application multicouche. Par exemple, vous pouvez souhaiter faire l'amélioration suivante à cette application :

Voir aussi

Autres ressources

Utilisation de groupes de données dans des applications multicouches

Mise à jour hiérarchique

Accès aux données dans Visual Studio