怪事,验证用户名是否存在时,要点二次才行.
用户注册这一块,就是点击查看此用户名是否存在.
前台代码:
<asp:Button ID= "Button1 " runat= "server " OnClick= "Button1_Click " Text= "检查用户名是否注册 " />
后台代码:
protected void Button1_Click(object sender, EventArgs e)
{
string Username = username.Text.ToString().Trim();
Username = CleanHtml.htmlInputText(Username);
if (Username != " ")
{
DBConn db = new DBConn();
SqlCommand cmd = db.GetCmd( "select id from web_user where username = ' " + Username + " ' ");
if ((int)cmd.ExecuteScalar() == 0)
{
JScript.Alert( "恭喜你,此用户名还没有被注册! ");
}
else
{
JScript.Alert( "对不起,用户名已被注册请重新输入! ");
}
}
else
{
JScript.Alert( "请输入用户名! ");
}
}
问题是:运行的时候,随便输入一个用户名,然后点击 "检查用户名是否注册 "按钮后,如果用户名是已经存在的,则需要按2次后才提示用户名已存在,按第一次时页面没反应,如果用户名是未存在的,则按第一次进没反应,按第二次时,提示出错 "
未将对象引用设置到对象的实例。 "出错的语句在 if ((int)cmd.ExecuteScalar() == 0)这一行.
请高手指点怎么回事.调试了好多次也不成功.急人.
------解决方案--------------------从理论上来说是你的username丢失造成的.
------解决方案--------------------cmd.ExecuteScalar() 如果是查询语句的话,返回的值是-1,当然用户名存在啦!我前不久也做过!取值吧!!