Comment : valider par rapport à des valeurs d'une base de données pour les contrôles serveur ASP.NET
Mise à jour : novembre 2007
Vous pouvez valider une entrée d'utilisateur par rapport à une base de données pour vérifier que la valeur des informations entrées par l'utilisateur est reconnue. À cette fin, vous devez écrire le code dans un contrôle CustomValidator qui recherche les correspondances de données dans une base de données.
Pour effectuer une validation par rapport à une base de données
Ajoutez un contrôle CustomValidator à la page et définissez les propriétés suivantes :
Propriété
Description
L'ID du contrôle que vous validez.
Propriétés spécifiant le texte et l'emplacement des erreurs qui s'afficheront si la validation échoue. Pour plus d'informations, consultez Comment : contrôler l'affichage des messages d'erreur de validation pour les contrôles serveur ASP.NET.
Créez un gestionnaire d'événements pour l'événement ServerValidate du contrôle CustomValidator. Dans le gestionnaire d'événements, ajoutez du code pour parcourir la base de données et vérifier les entrées d'utilisateur par rapport au groupe de données.
Remarque : Si l'utilisateur laisse un contrôle vide, le contrôle réussit la validation de comparaison. Pour obliger l'utilisateur à entrer une valeur, ajoutez un contrôle RequiredFieldValidator. Pour plus d'informations, consultez Comment : valider des entrées requises pour les contrôles serveur ASP.NET.
Ajoutez un test dans votre code de page Web ASP.NET afin de vérifier la validité. Pour plus d'informations, consultez Comment : tester la validité par programme des contrôles serveur ASP.NET.
L'exemple de code suivant montre comment valider une entrée d'utilisateur en la recherchant dans une table de base de données. Dans cet exemple, l'utilisateur a entré une adresse électronique qui est validée par rapport aux adresses électroniques stockées dans une table. La logique de validation personnalisée parcourt les lignes de la table faisant partie du groupe de données auquel la page peut accéder.
Private Sub CustomValidator1_ServerValidate(ByVal _ source As System.Object, ByVal args As _ System.Web.UI.WebControls.ServerValidateEventArgs) _ Handles CustomValidator1.ServerValidate Dim dv As DataView Dim dataset11 As New Data.DataSet dv = dataset11.Tables(0).DefaultView Dim datarow As DataRowView Dim txtEmail As String args.IsValid = False ' Assume False ' Loop through table and compare each record against user's entry For Each datarow In dv ' Extract e-mail address from the current row txtEmail = datarow.Item("Alias").ToString() ' Compare e-mail address against user's entry If txtEmail = args.Value Then args.IsValid = True Exit For End If Next End Sub
private void CustomValidator1_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args) { DataView dv; DataSet dataSet11 = new DataSet(); dv = dataSet11.Tables[0].DefaultView; string txtEmail; args.IsValid = false; // Assume False // Loop through table and compare each record against user's entry foreach (DataRowView datarow in dv) { // Extract e-mail address from the current row txtEmail = datarow["Alias "].ToString(); // Compare e-mail address against user's entry if (txtEmail == args.Value) { args.IsValid = true; } } }
Voir aussi
Concepts
Types de validation pour les contrôles serveur ASP.NET