Procédure pas à pas : ajout d'une validation à une application de données multicouche
Mise à jour : novembre 2007
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 :
Générer automatiquement des classes à l'aide du Concepteur de DataSet.
Ajouter le code pour effectuer la validation lorsque d'une colonne individuelle change.
Composants requis
Pour exécuter cette procédure pas à pas, vous devez disposer des éléments suivants :
La solution et les projets associés créés dans la rubrique Procédure pas à pas : création d'une application de données multicouche.
Un accès à l'exemple de base de données Northwind. Pour plus d'informations, consultez Comment : installer des exemples de bases de données.
Remarque : |
---|
Il est possible que votre ordinateur affiche des noms ou des emplacements différents pour certains des éléments d'interface utilisateur Visual Studio 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 Paramètres Visual Studio. |
Ouverture de la solution NTierWalkthrough
Pour ouvrir la solution NTierWalkthrough
Dans le menu Fichier, pointez Ouvrir, cliquez sur Projet/Solution, puis naviguez vers l'emplacement du fichier NTierWalkthrough.sln.
Remarque : Le fichier NTierWalkthrough, qui est créé dans la rubrique Procédure pas à pas : création d'une application de données multicouche, est nécessaire pour pouvoir suivre cette procédure pas à pas. Complétez la rubrique Procédure pas à pas : création d'une application de données multicouche, en enregistrant tous les projets lorsque vous avez terminé, si ce n'est pas encore fait.
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
Ouvrez le groupe de données dans le Concepteur de DataSet en double-cliquant sur le fichier NorthwindDataSet.xsd du projet DataAccessTier dans l'Explorateur de solutions.
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.
Remarque : Le Concepteur de DataSet ne crée pas automatiquement de gestionnaire d'événements pour l'événement C#. Le code requis pour gérer l'événement en C# est inclus dans la suite de cette procédure. SampleColumnChangingEvent est créé, puis s'abonne à l'événement ColumnChanging dans la méthode EndInit.
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
Appuyez sur F5.
Les données des tables Customers et Orders apparaissent sur le formulaire.
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.
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.
Positionnez le pointeur de la souris sur l'icône d'erreur pour afficher le texte d'erreur.
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 :
- Ajouter une validation pour vérifier les modifications lorsqu'un enregistrement entier est modifié. Pour plus d'informations, consultez Comment : ajouter la validation à un groupe de données multicouche.