Cómo: Validar con respecto a valores de una base de datos para controles de servidor ASP.NET

Actualización: noviembre 2007

Puede validar entradas del usuario con respecto a una base de datos para asegurarse de que el usuario ha especificado un valor reconocido. Para ello, debe escribir el código en un control CustomValidator que busque las coincidencias entre los datos de una base de datos.

Para validar con una base de datos

  1. Agregue un control CustomValidator a la página y establezca las propiedades siguientes:

    Propiedad

    Descripción

    ControlToValidate

    Id. del control que está validando.

    ErrorMessage, Text, Display

    Propiedades que especifican el texto y la ubicación del error o errores que se mostrarán si no se supera la validación. Para obtener información detallada, vea Cómo: Controlar la presentación de los mensajes de error de validación para los controles de servidor ASP.NET.

  2. Cree un controlador de eventos para el evento ServerValidate del control CustomValidator. En el controlador de eventos, agregue código para realizar un recorrido por la base de datos y comprobar la entrada del usuario en el conjunto de datos.

    Nota:

    Si el usuario deja un control en blanco, el control pasa la validación de comparación. Para hacer que el usuario escriba un valor, agregue también un control RequiredFieldValidator. Para obtener información detallada, vea Cómo: Validar entradas requeridas para controles de servidor ASP.NET.

  3. Agregue una prueba al código de la página Web ASP:NET para comprobar su validez. Para obtener información detallada, vea Cómo: Comprobar la validez de los controles de servidor ASP.NET mediante programación.

    En el ejemplo de código siguiente se muestra cómo se pueden validar las entradas del usuario consultándolas en una tabla de base de datos. En este caso, el usuario ha escrito una dirección de correo electrónico que se valida con las direcciones de correo electrónico almacenadas en una tabla. La lógica de validación personalizada recorre las filas de una tabla que forma parte del conjunto de datos disponible para la 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;
            }
        }
    }
    

Vea también

Conceptos

Tipos de validación para controles de servidor ASP.NET

Otros recursos

Controles de validación ASP.NET