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
Fügen Sie der Seite ein CustomValidator-Steuerelement hinzu, und legen Sie die folgenden Eigenschaften fest:
Eigenschaft
Beschreibung
Die ID des zu validierenden Steuerelements.
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.
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.
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