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)
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.
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#)
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.
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.
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
Vue d'ensemble de TableAdapter
Vue d'ensemble des sources de données
Référence
Événements (Guide de programmation C#)