自定義用戶驗證控件CustomValidator

背景:VisualStudio2005;
             使用自定義控件判斷註冊用戶名是否已經存在;
實現:
html:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CustomValidator.aspx.cs" Inherits="CustomValidator" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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屬性指示頁驗證是否成功
相關文章
相關標籤/搜索