背景:VisualStudio2005;
使用自定義控件判斷註冊用戶名是否已經存在;
實現:
html:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CustomValidator.aspx.cs" Inherits="CustomValidator" %>
<html xmlns="
http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>自定義用戶驗證控件:判斷用戶名是否已經存在</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table>
<tr>
<td style="width: 72px; height: 21px">
用戶名:</td>
<td style="width: 90px; height: 21px">
<asp:TextBox ID="txtName" runat="server" Width="86px"></asp:TextBox></td>
<td style="width: 163px; height: 21px">
<asp:CustomValidator ID="CustomValidator1" runat="server" ControlToValidate="txtName"
ErrorMessage="用戶已經存在!" OnServerValidate="CustomValidator1_ServerValidate"></asp:CustomValidator></td>
</tr>
</table>
</div>
<asp:Button ID="Button1" runat="server" Text="Button" />
</form>
</body>
</html>
code:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class CustomValidator : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
//取得要在CustomeValidator.ServerValidate事件的自定義事件處理程序中驗證的值
string userName = args.Value;
SqlConnection con = DB2.createCon();
con.Open();
//查詢該用戶名記錄集
SqlCommand cmd = new SqlCommand("select count(*) from tb_user where userName='" + userName + "'", con);
int count = Convert.ToInt32(cmd.ExecuteScalar());
//若是count>0代表在數據庫中已經存在該用戶名,且設置args.IsValid屬性爲false,表示未經過驗證
if (count > 0)
{
//獲取或設置由 ServerValidateEventArgs.Value屬性指定的值是否經過驗證
args.IsValid = false;
}
else
{
args.IsValid = true;
}
}
}
DB2.cs
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
/// <summary>
/// DB2 的摘要說明
/// </summary>
public class DB2
{
public DB2()
{
//
// TODO: 在此處添加構造函數邏輯
//
}
public static SqlConnection createCon()
{
return new SqlConnection("server=localhost\\sqlexpress;database=db_login;uid=sa;pwd=hello");
}
}
注:能夠使用Page.IsValid屬性指示頁驗證是否成功