后台代码如下:
     protected void CustomValidator1_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args)
        {
            string UserName = args.Value;//获取用户名 
            string str = ConfigurationManager.ConnectionStrings["lucyConnectionString"].ConnectionString;
            SqlConnection conn = new SqlConnection(str);
            SqlCommand cmd = conn.CreateCommand();
            conn.Open();
            cmd.CommandText = "select count(*) from Customer_Info WHERE CustomerUserName= '" + UserName + "' ";
           
         int count = cmd.ExecuteScalar();
            
            if (count > 0)
            {
                args.IsValid = false;            }
            else
            {
                args.IsValid = true;
            }
            conn.Close();
        }
输入用户名和数据库中的一样,但是断点测试后,count的值始终为0,并且验证没有报错,直接添加进入数据库

解决方案 »

  1.   

    int count = Convert.ToInt16(cmd.ExecuteScalar());
      

  2.   

    if (count > 0)
      {
      args.IsValid = false;
      }
      else
      {
      args.IsValid = true;
      //这里写数据库!
      }
      

  3.   


    sorry,不太明白呢。。不是应该点击提交按钮然后将数据写入数据库吗?怎么是在自定义验证的脚本里写入数据库呢?
      

  4.   

    好吧。。我发现是我同时对一个textbox使用两个验证控件的原因。。谢谢