Ajax 在Asp.net(c#)中即时验证用户名

根据征服ajax一书中的例子改写的,那个例子不能检索数据库,希望对大家有所帮助

--------------------------在web.comfig中添加-----------  
  <httpHandlers>
      <add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro" />
    </httpHandlers> 
----------------------------------------------------------------

-------------------------数据库操作类SqlServerDataBase.cs放在app_code文件夹中---------------
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;
namespace mysqlserver
{
    /// <summary>
    /// SqlServerDataBase 的摘要说明
    /// </summary>
    public class SqlServerDataBase
    {
        private string strError = null;
        private int intCount = 0;
        public SqlServerDataBase()
        {
            //
            // TODO: 在此处添加构造函数逻辑
            //
        }
        /// <summary>
        /// 公开方法DBConn,返回数据库连接
        /// </summary>
        /// <returns></returns>
        public SqlConnection DBconn()
        {
            string strConn = "Server=(local);Database=xldf_rhvac_net;Uid=worldpeace;pwd=oneworld&onexldf";
            try
            {
                return new SqlConnection(strConn);
            }
            catch (Exception)
            {
                return null;
            }
        }
        /// <summary>
        /// 公开属性ErrorMessage,返回错误信息
        /// </summary>
        public string ErrorMessage
        {
            get
            {
                return strError;
            }
        }

        /// <summary>
        /// 根据查询语句从数据库检索数据
        /// </summary>
        /// <param name="strSelect">查询语句</param>
        /// <param name="SqlConn">数据库连接</param>
        /// <returns>有数据则返回DataSet对象,否则返回null</returns>
        public DataSet Select(string SelectString, SqlConnection sqlConn)
        {
            strError = "";
            SqlConnection conn;
            if (sqlConn == null)
            {
                conn = DBconn();
            }
            else
            {
                conn = sqlConn;
            }
            try
            {
                //若数据库连接的当前状态是关闭的,则打开连接
                if (conn.State == ConnectionState.Closed)
                {
                    conn.Open();
                }
                SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter();
                SqlCommand selectCommand = new SqlCommand(SelectString, conn);
                selectCommand.CommandType = CommandType.Text;
                mySqlDataAdapter.SelectCommand = selectCommand;
                DataSet myDS = new DataSet();
                mySqlDataAdapter.Fill(myDS);
                return myDS;
            }
            catch (Exception e)
            {
                strError = "数据检索失败:" + e.Message;
                return null;
            }
            finally
            {
                if (conn.State != ConnectionState.Closed)
                {
                    conn.Close();
                }
            }
        }
    }
}
---------------------------------------------------------------------------------------

--------------------------------------前台页面Register.aspx-------------------------------------
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Register.aspx.cs" Inherits="MyRegister.Register" %>

<%@ Register Assembly="Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    Namespace="Microsoft.Web.UI" TagPrefix="asp" %>

<!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>
    <LINK href="../stylesheet.css" _fcksavedurl=""../stylesheet.css"" type="text/css" rel="stylesheet">
        <script language="javascript">
        function IsUsernameExist_callback(result)
        {
            var msg = document.getElementById('Message');
            var bun = document.getElementById('Button1');
            var value = result.value;
            if( value == '1' )
            {
                msg.innerHTML = '用户名未被注册!';
                msg.style.color='green';
                bun.disabled=false;
                return true;           
            }           
            else
            {
                msg.innerHTML = '用户名已被注册!';
                msg.style.color='red';  
                bun.disabled=true;
                return false;
            }
        }
       
        function VerifyUserName(name)
        {
            MyRegister.Register.GetReturnCode(name, IsUsernameExist_callback);
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div class="middle" style="height: 1px" >
    <div >
        <asp:Label ID="LbEmail" runat="server" Text="电子邮箱:"></asp:Label>
        <asp:TextBox ID="Email" runat="server"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="*" ControlToValidate="Email"></asp:RequiredFieldValidator>
</div>
    <div >
        <asp:Label ID="LbUserPsw" runat="server" Text="密码:" ></asp:Label>
        <asp:TextBox ID="UserPsw" runat="server" TextMode="Password"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="*" ControlToValidate="UserPsw"></asp:RequiredFieldValidator></div>
    <div >
        <asp:Label ID="LbCheckUserPsw" runat="server" Text="确认密码:" ></asp:Label>
        <asp:TextBox ID="CheckUserPsw" runat="server" TextMode="Password"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ErrorMessage="*" ControlToValidate="CheckUserPsw"></asp:RequiredFieldValidator></div>
    <div >
        <asp:Label ID="LbQuestion" runat="server" Text="找回密码问题:"></asp:Label>
        <asp:TextBox ID="Question" runat="server"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ErrorMessage="*" ControlToValidate="Question"></asp:RequiredFieldValidator></div>
    <div>
        <asp:Label ID="LbAnswer" runat="server" Text="找回密码答案:"></asp:Label>
        <asp:TextBox ID="Answer" runat="server"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ErrorMessage="*" ControlToValidate="Answer"></asp:RequiredFieldValidator></div>
    <div >
        <asp:Label ID="Label1" runat="server" Text="验证码:"></asp:Label>
        <asp:TextBox ID="CheckCode"  runat="server" Width="85px"></asp:TextBox><a href="javascript:loadimage();"><asp:Image id="Image1" runat="server" ImageUrl="Validate.aspx"></asp:Image></a>
       
        <script type="text/javascript" language="JavaScript">
              <!--
                  function loadimage(){
                  document.getElementById("Image1").src = "Validate.aspx?"+Math.random();
                                       }
              //--> 
         </script>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server" ErrorMessage="*" ControlToValidate="CheckCode"></asp:RequiredFieldValidator>
        </div>
    <div>
        <asp:Button ID="Button1" runat="server" Text="确定" OnClick="Button1_Click" /></div>
    <div class="text">
        <asp:Label ID="Message" runat="server" ></asp:Label></div>
    </div>
    </form>
</body>
</html>
--------------------------------------------------------------------------------------------------

------------------------------------后台页面Register.aspx.cs---------------------------
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 mysqlserver;
namespace MyRegister
{
    public partial class Register : System.Web.UI.Page
    {
        protected System.Web.UI.WebControls.TextBox Email1;
        protected void Page_Load(object sender, EventArgs e)
        {
            AjaxPro.Utility.RegisterTypeForAjax(typeof(Register));
            Email.Attributes.Add("OnKeyUp", "VerifyUserName(this.value)");
        }
        [AjaxPro.AjaxMethod]
        public string GetReturnCode(string strName)
        {
            if (!IsUsernameExist(strName))
            {
                return "1";
            }
            else
            {
                return "0";
            }
        }
        private bool IsUsernameExist(string strUsername)
        {
            bool bRet = true;
            SqlServerDataBase db = new SqlServerDataBase();
            DataSet ds = db.Select("select * from ypCompanyInfo where CompanyName = '" + strUsername + "'", null);
            if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
            {
                bRet = false;
            }
            else
            {
                bRet = true;
            }

            return bRet;
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            string VNum = CheckCode.Text;
            string myEmail = Email.Text.Trim();
            if (VNum != Session["VNum"].ToString() || Session["VNum"].ToString() == null)
            {
                Message.Text = "验证码错误!";
            }
           
                else
                {
                    Response.Redirect("../default.aspx");
                }
            }

        }
    }
---------------------------------------------------------------------------------

所有的文件都在这了,因为自己也是新手,同时把改写代码过程中遇到的问题说一下
1、类的实例化,也就是如何调用数据库操作类,注意要引用类的命名空间,主要是c#.net的知识。
2、要更改web.config文件,在Page_Load里注册,在使用时加上[AjaxPro.AjaxMethod]。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值