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
Aggiungere un controllo CustomValidator alla pagina e impostare le proprietà riportate di seguito.
Proprietà
Descrizione
ID del controllo da convalidare.
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.
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.
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