using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
public partial class Company : System.Web.UI.Page
{
    RGP.IBLL.Member memberBLL = new RGP.BLL.Member();
    protected RGP.Model.Member member = new RGP.Model.Member();
    RGP.Model.Device device = new RGP.Model.Device();
    RGP.IBLL.Device deviceBll = new RGP.BLL.Device();
    RGP.IBLL.DictInfo dictBLL = new RGP.BLL.DictInfo();
    RGP.IBLL.MemberVisit visitBLL = new RGP.BLL.MemberVisit();
    protected RGP.Model.MemberVisit visit = new  RGP.Model.MemberVisit();    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
        代码省略...............        }         visit.VisitID = Convert.ToInt32(memberBLL.get(Request.Cookies["login_MemberID"].Value));
        visit.MemberID =int.Parse(Request.QueryString["ID"]);
        visit.VisitTime = DateTime.Now;
        visit.VisitIP = RGP.Lib.StringHandle.GetIP();
        visitBLL.add(visit);
    }
    }报错 
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 
行 46:         }
行 47: 
行 48:        visit.VisitID = Convert.ToInt32(memberBLL.get(Request.Cookies["login_MemberID"].Value));
行 49:         visit.MemberID =int.Parse(Request.QueryString["ID"]);
行 50:         visit.VisitTime = DateTime.Now;
 

解决方案 »

  1.   

    Request.Cookies["login_MemberID"]  先判断下它是否为空`
      

  2.   


    // 应该先判断Cookies是否有内容
    if (Request.Cookies.Count > 0)
    {
      if(Request.Cookies["login_MemberID"]!=null)
      {
         //在这里取值
      }
    }或者给visit.VisitID = Convert.ToInt32(memberBLL.get(Request.Cookies["login_MemberID"].Value));
    加try 
    {         

    }
    catch (Exception)
    {

    throw;
    }
      

  3.   

    Request.Cookies["login_MemberID"]中没有值
      

  4.   

    visit.VisitID = Convert.ToInt32(memberBLL.get(Request.Cookies["login_MemberID"].Value));
    //在没有设置值的时候会出错,要先判断一下if(!string.IsNullOrEmpty(Request.Cookies["login_MemberID"]))
    {
            visit.VisitID =           Convert.ToInt32(memberBLL.get(Request.Cookies["login_MemberID"].Value));
            visit.MemberID =int.Parse(Request.QueryString["ID"]);
            visit.VisitTime = DateTime.Now;
            visit.VisitIP = RGP.Lib.StringHandle.GetIP();
            visitBLL.add(visit);}
      

  5.   

    我想做的是如果没有值,给Request.Cookies["login_MemberID"] 赋值为0  不知道怎么写啊
      

  6.   

    visit.VisitID = Convert.ToInt32(memberBLL.get(Request.Cookies["login_MemberID"]!=null?Request.Cookies["login_MemberID"].Value:""));
      

  7.   


    int i = 0;
    if(Request.Cookies["login_MemberID"]!=null)
    {
      int.TryParse(Request.Cookies["login_MemberID"].Value,out i);
    }
      

  8.   

    判断一下Request.Cookies["login_MemberID"].Value是否为NullCookies也有过期的
      

  9.   

    这样可以吗  if (Request.Cookies.Count > 0)
            {
                if (Request.Cookies["login_MemberID"] == null)
                {
                    visit.VisitID = 0;
                }
                else
                {
                    visit.VisitID = Convert.ToInt32(memberBLL.get(Request.Cookies["login_MemberID"].Value));
                }        }
      

  10.   

    调用一个对象的函数的时候要注意该对象是否为null
      

  11.   

    我想做的是如果没有值,给Request.Cookies["login_MemberID"] 赋值为0 不知道怎么写啊
    用一个中间变量啊。先判断着个值是不是空,然后,把这个值赋值给一个中间变量,
    如果为空,就赋值为0然后把变量传过去。执行你的函数。
      

  12.   

    if(Request.Cookies["login_MemberID"]!=null)
    {
    //在这里取值
    }
    这就是你要的