Partager via


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

  1. Ajoutez un contrôle CustomValidator à la page et définissez les propriétés suivantes :

    Propriété

    Description

    ControlToValidate

    L'ID du contrôle que vous validez.

    ErrorMessage, Text, Display

    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.

  2. 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.

  3. 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

Autres ressources

Contrôles ASP.NET de validation