Gewusst wie: Validierung anhand von Werten in einer Datenbank für ASP.NET-Serversteuerelemente

Aktualisiert: November 2007

Sie können die Eingabe eines Benutzers anhand einer Datenbank validieren, um sicherzustellen, dass der Benutzer einen gültigen Wert eingegeben hat. Dazu müssen Sie Code in ein CustomValidator-Steuerelement schreiben, das eine Datenbank auf übereinstimmende Daten durchsucht.

So führen Sie eine Validierung anhand einer Datenbank durch

  1. Fügen Sie der Seite ein CustomValidator-Steuerelement hinzu, und legen Sie die folgenden Eigenschaften fest:

    Eigenschaft

    Beschreibung

    ControlToValidate

    Die ID des zu validierenden Steuerelements.

    ErrorMessage, Text, Display

    Eigenschaften, mit denen der Text sowie die Position der Fehler festgelegt werden, die angezeigt werden, wenn die Validierung fehlschlägt. Ausführliche Informationen finden Sie unter Gewusst wie: Steuern der Anzeige von Validierungsfehlermeldungen für ASP.NET-Serversteuerelemente.

  2. Erstellen Sie einen Ereignishandler für das ServerValidate-Ereignis des CustomValidator-Steuerelements. Fügen Sie im Ereignishandler Code hinzu, um die Datenbank zu durchsuchen und die Benutzereingabe mit dem Dataset zu vergleichen.

    Hinweis:

    Wenn der Benutzer ein Steuerelement leer lässt, besteht das Steuerelement die Validierung, die anhand eines Vergleichs durchgeführt wird. Um die Eingabe eines Werts durch den Benutzer zu erzwingen, fügen Sie ein RequiredFieldValidator-Steuerelement hinzu. Weitere Informationen finden Sie unter Gewusst wie: Validieren erforderlicher Einträge für ASP.NET-Serversteuerelemente.

  3. Fügen Sie der ASP.NET-Webseite eine Testroutine hinzu, um die Gültigkeit zu prüfen. Ausführliche Informationen finden Sie unter Gewusst wie: Programmgesteuertes Validieren für ASP.NET-Serversteuerelemente.

    Das folgende Codebeispiel veranschaulicht, wie Sie den Eintrag eines Benutzers anhand der Einträge in einer Datenbanktabelle überprüfen. In diesem Fall hat der Benutzer eine E-Mail-Adresse eingegeben, die mithilfe von in einer Tabelle gespeicherten E-Mail-Adressen geprüft werden soll. Die benutzerdefinierte Validierungslogik durchläuft in Schleifen die Zeilen in einer Tabelle, die Teil des für die Seite verfügbaren Datasets ist.

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

Siehe auch

Konzepte

Arten der Validierung für ASP.NET-Serversteuerelemente

Weitere Ressourcen

ASP.NET-Validierungssteuerelemente