Condividi tramite


Procedura: convalidare in base a valori di un database per i controlli server ASP.NET

Aggiornamento: novembre 2007

È possibile eseguire la convalida dei dati immessi dall'utente in base a un database, per accertarsi che l'utente immetta un valore riconosciuto. A tale scopo, è necessario scrivere il codice in un controllo CustomValidator che consente di cercare corrispondenze dei dati in un database.

Per eseguire la convalida in base a un database

  1. Aggiungere un controllo CustomValidator alla pagina e impostare le proprietà riportate di seguito.

    Proprietà

    Descrizione

    ControlToValidate

    ID del controllo da convalidare.

    ErrorMessage, Text, Display

    Proprietà che specificano il testo e il percorso dell'errore o degli errori visualizzati se la convalida non riesce. Per informazioni dettagliate, vedere Procedura: controllare la visualizzazione dei messaggi di errore di convalida per i controlli server ASP.NET.

  2. Creare un gestore eventi per l'evento ServerValidate del controllo CustomValidator. Nel gestore eventi aggiungere il codice che consente di effettuare una ricerca nel database e verificare l'input dell'utente in base al DataSet.

    Nota:

    Se l'utente lascia vuoto un controllo, la convalida di confronto del controllo riuscirà. Per forzare l'immissione di un valore da parte dell'utente, aggiungere anche un controllo RequiredFieldValidator. Per informazioni dettagliate, vedere Procedura: convalidare le voci obbligatorie per i controlli server ASP.NET.

  3. Aggiungere un test al codice della pagina Web ASP.NET per verificarne la validità. Per informazioni dettagliate, vedere Procedura: eseguire il test della validità dei controlli server ASP.NET a livello di codice.

    Nell'esempio di codice riportato di seguito viene illustrato come eseguire la convalida dei dati immessi dall'utente, eseguendone la ricerca in una tabella di database. In questo caso, l'utente ha inserito un indirizzo di posta elettronica di cui viene eseguita la convalida in base agli indirizzi memorizzati in una tabella. La logica di convalida personalizzata scorre in ciclo le righe della tabella che fa parte del DataSet disponibile per la pagina.

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

Vedere anche

Concetti

Tipi di convalida per i controlli ASP.NET lato server

Altre risorse

Convalida dei controlli ASP.NET