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
Adicione um controle CustomValidator para a página e defina as seguintes propriedades:
Propriedade
Descrição
A identificação do controle que você está validando.
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.
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.
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