就是 我想做一个登陆系统 但账号必须是唯一 在数据库不能重复 
   请问还需要在后面添加一个RequiredFieldValidator吗?
  麻烦大家帮帮忙,最后没分了 人在线等待答案  谢谢了

解决方案 »

  1.   

    你只要判断下select count(1) from [User] where UserName=@UserName就行了。用ExecuteSclar()返回值,大于0 说明存在了
      

  2.   

    那就用jquery异步去判断这个例子很多!你现在是做注册么
      

  3.   

    那就用ajax了
    假设你的TextBox 的id为username
    则先在TextBox中加入事件onkeyup="checkName();"
    然后是js:
    function checkName() {
                $.get('AjaxCheckName.aspx?name=' + $('#username').val(), function (data) {
                    if (data == "false") {
                        //显示已被注册的提示
                    }
                });
            }在AjaxCheckName.aspx.cs文件中:
    protected void Page_Load(object sender, EventArgs e)
            {
                string name= Request.QueryString["name"];
                {
                    //检查数据库中是否已存在
                    bool NameAlreadyTaken = CustomerManager.GetInstance().CheckNameInUse(name);
                    if (NameAlreadyTaken)
                    {
                        Response.Write("false");
                    }
                    else
                    {
                        Response.Write("true");
                    }
                }
            }
      

  4.   

    1、在文本框中设置onblur事件,失去焦点后判断是否填写工号,填写了的使用Ajax提交到服务器端进行验证,并返回验证结果。
    2、注册的按钮事件中,先不保存数据,去数据库验证工号,不是唯一就return ,唯一就保存
      

  5.   

    bool NameAlreadyTaken = CustomerManager.GetInstance().CheckNameInUse(name);
      我在麻烦问一下哈
           CustomerManager这个是什么意思哦?
      

  6.   


    CustomerManager 是什么意思哦?
     而且 TextBox中我没有找到这个onkeyup
     麻烦帮帮忙 感激不尽
      

  7.   

    这是业务逻辑层的方法,新建一个CustomerManager.cs文件,在这个文件中处理业务逻辑,
    三层架构原理,看来得手把手教你。
    这个地方你要是不懂就不要分三层了,直接在当前文件中写sql查询好了
    bool NameAlreadyTaken =查询数据库中是否已存在并返回true或false
      

  8.   

    获取指去数据库判断。然后后面加个Label输出结果!
      

  9.   

    ajax异步获取数据,查询用户数据   
    <script type="text/javascript">   
      var xmlHttp;   
      function createXMLHttpRequest()   
      {   
      if(window.ActiveXObject)   
      {   
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");   
      }   
      else if(window.XMLHttpRequest)   
      {   
      xmlHttp = new XMLHttpRequest();   
      }   
      }   
      function CheckUserName()   
      {   
      var us=document.getElementById("txtname").value;   
      if(us!="")   
      {   
      createXMLHttpRequest();   
      var url= "RegistValidate.ashx?username="+escape(document.getElementById("txtname").value);   
      xmlHttp.open("GET",url,true);   
      xmlHttp.onreadystatechange=ShowResult;   
      xmlHttp.send(null);   
      }   
      }   
      function ShowResult()   
      {   
      if(xmlHttp.readyState==4)   
      {   
      if(xmlHttp.status==200)   
      {   
      var s;   
      s=xmlHttp.responseText;   
      alert(s);   
      }   
      }   
      }   
    </script>   
     
    onblur="CheckUserName()"
      

  10.   

    没有onkeyup就不在TextBox中加了,把函数换一下,换为:
     $('#username').keyup(function(){
    $.get('AjaxCheckName.aspx?name=' + $('#username').val(), function (data) {
      if (data == "false") {
      //显示已被注册的提示
      }
      });
    });
      

  11.   

    在 txtAreano_TextChanged事件中定这个方法就行了 protected void txtAreano_TextChanged(object sender, EventArgs e)
        {
            string sql = "select count(1) from BreedFamily_Danshui where familyno='"+txtAreano.Text+"';
            int count = 0;
            try
            {
                count = Convert.ToInt32(DbHelperSQL.GetSingle(sql));
            }
            catch
            {
                count = 0;
            }
            if (count > 0)
            {
                ScriptManager.RegisterStartupScript(this.Page, this.GetType(),"aa", "alert('用户编码重复,请重新添加!')", true);
                this.txtAreano.Text = "";
            }
        }