更新:2007 年 11 月
您可以比對資料庫驗證使用者的輸入,以確定使用者所輸入的值是可識別的值。若要這麼做,您必須在 CustomValidator 控制項中撰寫程式碼,這個控制項會尋找資料庫中的資料符合項目。
若要比對資料庫驗證
將 CustomValidator 控制項加入至網頁,並設定下列屬性:
為 CustomValidator 控制項的 ServerValidate 事件建立事件處理常式。在該事件處理常式中,加入程式碼,以搜尋資料庫,並比對資料集檢查使用者的輸入。
在 ASP.NET Web 網頁程式碼中加入一個檢查有效性的測試。如需詳細資訊,請參閱 HOW TO:以程式的方式測試 ASP.NET 伺服器控制項的有效性。
下列程式碼範例會顯示如何在資料庫資料表中查詢使用者的輸入以進行驗證。在這個例子中,使用者輸入了電子郵件地址,該電子郵件地址為要比對儲存在資料表中的電子郵件地址驗證。自訂的驗證邏輯會尋找網頁中可用的資料集中的資料表的資料列。
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;
}
}
}
概念
其他資源