回 帖 发 新 帖 刷新版面

主题:ASP.NET自定义控件检查用户名是否存在的问题

我想用一个自定义控件在注册ID的时候检查是否有同名用户。 
奇怪的是总是能插入(我在建立数据库表的时候也是设置了主键的),用断点调试了一下,发现count的值没问题,和数据库里的相关记录数一致,这个控件也能报错,但是并没有阻止数据的提交。 

我想这个验证是不是顺序不对,以为是提交数据后才跟服务器交互,然后这个控件开始判断,返回错误时数据已经插入数据库了。我试了下把这个TextBox设置为 AutoPostBack,但是还是没有效果。请问应该怎么做,谢谢

这个是控件的后台代码: 
    protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args) 
    { 
        SqlConnection con = DB_UserInfo.CreateConnection(); 
        con.Open();//打开数据库 

        string pID=args.Value;//获取文本框中的用户名 
        SqlCommand cmd = new SqlCommand("select Count(*) from UserInfo where pID='" + pID + "'", con); 
        int count = Convert.ToInt32(cmd.ExecuteScalar()); 
        if (count > 0) 
        { 
            args.IsValid = false; 
        } 
        else 
        { 
            args.IsValid = true; 
        } 

        con.Close(); 
    }

回复列表 (共1个回复)

沙发


实在找不出解决方法,我只好是把这段代码写在点按钮的时候触发,然后返回一个值,判断这个值为1的时候不提交数据,没用VS提供的控件。。。

我来回复

您尚未登录,请登录后再回复。点此登录或注册