首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

asp.net网站做了个登录,出现异常,求大神帮助

2013-02-25 
asp.net网站做了个登录,出现错误,求大神帮助本帖最后由 wang0921zheng 于 2013-02-07 00:46:35 编辑我做了

asp.net网站做了个登录,出现错误,求大神帮助
本帖最后由 wang0921zheng 于 2013-02-07 00:46:35 编辑 我做了个登录页面,如果输入正确的账号和密码,就可以运行。但是如果故意输错账号或密码,就会出现错误
下面是代码,UserLogin是个存储过程,错误就是 if(dsTable.Rows.Count>0)这行,说未将对象引用设置到对象实例中。。。。
 protected void btnLogin_Click(object sender, EventArgs e)
    {
            CommonClass cc = new CommonClass();
            DB db = new DB();
            UserClass uc = new UserClass();
            string num = this.txtValidateNum.Text.Trim();
            Session["UserID"] = null;
            Session["UserName"] = null;
            if (this.txtUserName.Text.Trim() == "" || this.txtPwd.Text.Trim() == "")
            {
                Response.Write(cc.MessageBox("登录名和密码不能为空!", "Default.aspx")); ;
            }
            else
            {
                if (Session["ValidateNum"].ToString() == num.ToUpper())——这行是验证码的验证
                {
                    DataTable dsTable = uc.UserLogin(this.txtUserName.Text.Trim(), this.txtPwd.Text.Trim());
                    if (dsTable.Rows.Count>0)
                    {
                        Session["UserID"] = Convert.ToInt32(dsTable.Rows[0][0].ToString());
                        Session["UserName"] = dsTable.Rows[0][1].ToString();
                        Response.Redirect(Request.CurrentExecutionFilePath);
                    }
                    else
                    {

                        Response.Write(cc.MessageBox("用户名或密码错误,请重新输入!", "Default.aspx"));
                    }
                }


                else
                {
                    Response.Write(cc.MessageBox("验证码错误,请重新输入!", "Default.aspx"));
                }
            }
        }
[解决办法]
改成如下代码试试,不清楚你UserLogin怎么写的,感觉返回的DataTable应该是null
DataTable dsTable = uc.UserLogin(this.txtUserName.Text.Trim(), this.txtPwd.Text.Trim());
if (dsTable!=null && dsTable.Rows.Count>0)

[解决办法]
用楼上的方法试一试吧
不知道你存储过程是怎么写的,估计在返回值上有错误,好好调一下
话说你验证用户干嘛用存储过程
业务逻辑不复杂的话还是直接查询吧
存储过程不好调试啊
[解决办法]
if (dsTable!=null && dsTable.Rows.Count>0)

热点排行