Maticsoft.Model.UserInfo model = new Maticsoft.Model.UserInfo();
            Maticsoft.BLL.UserInfo bll = new Maticsoft.BLL.UserInfo();
             DataTable tab = bll.GetList("uArea_Code ='" + Request.QueryString["username"] + "' and uPwd='" + Request.QueryString["password"] + "'").Tables[0];            if (tab.Rows.Count > 0)
            {
                FormsAuthentication.SetAuthCookie(Request.QueryString["username"], false);
                Session["uname"] = Request.QueryString["username"];
                Session["upwd"] = Request.QueryString["password"];
                Session["id"] = tab.Rows[0]["uID"].ToString();
                Session["js"] = tab.Rows[0]["uRole"].ToString();
                Response.Redirect("admin/admin.aspx");
            }
            else
            {
                
               Response.WriteFile( "管理员名称或密码错误!");
            }

解决方案 »

  1.   

    if(!String.IsNullOrEmpty(Request.QueryString["username"]) && !String.IsNullOrEmpty(Request.QueryString["password"]))
    {DataTable tab = bll.GetList("uArea_Code ='" + Request.QueryString["username"] + "' and uPwd='" + Request.QueryString["password"] + "'").Tables[0]; 
    }
      

  2.   

    就是没取到值,调试看
    Request.QueryString["username"], Request.QueryString["password"]
    是否有值,另外datatable是否为空
      

  3.   

    bll.GetList("uArea_Code ='" + Request.QueryString["username"] + "' and uPwd='" + Request.QueryString["password"] + "'").Tables[0]; 这句打个断点  调试一下
      

  4.   

    引用类型的变量在使用之前请先判断一下是不是为null,尤其是取值,或者得到返回值的时候
      

  5.   

    bll.GetList("uArea_Code ='" + Request.QueryString["username"] + "' and uPwd='" + Request.QueryString["password"] + "'")
    返回NULL了吧。
      

  6.   

      Maticsoft.BLL.UserInfo bll = new Maticsoft.BLL.UserInfo();bll里面有东西吗
      

  7.   


    你先在问题中明确说出到底是哪一个值为null(例如你确定是Request.QueryString["username"])然后再问。如果你自己不调试,别人也都是瞎猜。运行时这个逻辑bug是非常普通的,这时候搞清楚之前的操作为什么会产生null值,而不是简单地写一个if(xxx==null)这种判断,因为这种判断只是让程序不抛出异常了(蒙了自己了),但是却根本没有完整正常的设计功能要求。