Como: Validar contra valores em um banco de dados para controles de servidor ASP.NET

Você pode validar entrada do usuário em um banco de dados para ter certeza de que o usuário digitou um valor reconhecido.Para fazer isso, você deve escrever o código em um controle CustomValidator que procura por correspondências de dados em um banco de dados.

Para validar com relação a um banco de dados

  1. Adicione um controle CustomValidator para a página e defina as seguintes propriedades:

    Propriedade

    Descrição

    ControlToValidate

    A identificação do controle que você está validando.

    ErrorMessage, Text, Display

    Propriedades que especificam o texto e a localidade do erro ou erros que serão exibidos se a validação falhar.Para obter detalhes, consulte:Como: Controle validação erro mensagem Display for ASP.NET servidor Controls.

  2. Crie um manipulador de eventos para o evento ServerValidate do controle CustomValidator.Na manipulador de eventos, adicione um código para percorrer o banco de dados e verificar a entrada do usuário contra o conjunto de dados.

    Observação:

    Se o usuário deixar um controle em branco, o controle passará pela validação de comparação.Para forçar ao usuário inserir um valor, adicione um controle RequiredFieldValidator também.Para obter detalhes, consulte Como: Valide Required Entries for ASP.NET servidor Controls.

  3. Adicione um teste em seu código de página Web do ASP.NET para verificar se há validade.Para obter detalhes, consulte Como: Testar validade por programação controles de servidor ASP.NET.

    O exemplo de código a seguir mostra como você pode validar a entrada de um usuário por pesquisá-lo em um tabela de banco de dados.Nesta instância, o usuário digitou um endereço de email que é validado contra endereços de email armazenados em uma tabela.A validação personalizada lógica faz um loop através de linhas em uma tabela que faz parte do conjunto de dados disponível para a página.

    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;
            }
        }
    }
    

Consulte também

Conceitos

Tipos de validação para controles de servidor do ASP.NET

Outros recursos

Controles de Validação do ASP.NET