string VNum; 
VNum= Session["VNum"].ToString();        
ViewState["VNum"]=VNum; 
if(this.Vcode.Text==ViewState["VNum"].ToString()) 
{
判断登陆 }
else 

Response.Write("<script>alert(\"请输入正确的附加码!\");</script>"); 
} 以上代码提示 未将对象引用到实例 VNum= Session["VNum"].ToString();  
可以以前都OK 最近机器出现
http://community.csdn.net/Expert/topic/4475/4475186.xml?temp=3.832644E-02
这样的问题后 结果以前可以运行 现在却不行
晕死了!!!

解决方案 »

  1.   

    VNum= Session["VNum"]==null?"":Session["VNum"].ToString();
      

  2.   

    没有实例即赋值。
    比如: VNum= Session["VNum"].ToString(); 之前
    应该先判断Session["VNum"].ToString()是否为null或者为"".
    以增强代码的健状性。
      

  3.   

    if(ViewState["VNum"]!=null && this.Vcode.Text==ViewState["VNum"].ToString()) 
    {
        //判断登陆
    }
    else 

        Response.Write("<script>alert(\"请输入正确的附加码!\");</script>"); 
    } if(Session["VNum"]!=null && this.Vcode.Text==Session["VNum"].ToString()) 
    {
        //判断登陆
    }
    else 

        Response.Write("<script>alert(\"请输入正确的附加码!\");</script>"); 

    //----------------------------
    在tosting()前要先判断是否为null,如果是null,那么tostring会出“未将对象引用到实例”的错误,这是关键,也就是Session["VNum"]!=null && Session["VNum"].ToString()="1"两条件要同时存在,且!null的判断在前
      

  4.   

    那为什么上面的CODE 以前都可以运行呢????
    代码我确认没有动过!!!
      

  5.   

    那为什么上面的CODE 以前都可以运行呢????
    代码我确认没有动过!!!========================================
    代码一样 可能环境改变了,本来存在的错误暴露出来的
    建议使用step by step debug一下整个运行过程每个变量的值
      

  6.   

    环境变了???
    是什么意思???议使用step by step debug一下整个运行过程每个变量的值
    能否具体些?
      

  7.   

    当Session["VNum"]不存在时Session["VNum"].ToString()就会报错
    应该是
    VNum= Session["VNum"]==null?"":Session["VNum"].ToString();
      

  8.   

    @ccwwrr() 
    step by step debug你可以设置一些断点,一步一步运行,看看那里出问题了比如既然你的程序有从Session["VNum"]获取值,那必然你的程序里肯定也应该有给Session["VNum"]附值的语句,你主要把获取和附值的语句都设置一些断点,然后整个流程跑一遍
    你应该会知道那里出问题.我们只能给你建议,不能代替你解决问题,毕竟你描述出来的的环境和你实际总有差距,我们无法给出完整的解决方案,而要你自己根据情况选择,尝试,采用....