异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例
行 196:   SysData.zhDoCommand (Session["user_no"].ToString() ,DateTime.Now.ToString() ,this.ToString().Substring(4,this.ToString().Length - 9),Session["c_id"].ToString(),"select",SqlStr,TableName,true);
行 197: DataGrid2.DataSource = ((DataSet)SysData.Session["SysDs"]).Tables[TableName].DefaultView;    
行 198:DataGrid2.DataBind();
源文件: c:\inetpub\wwwroot\laboursys\rs_contract.aspx.cs    行: 196我已将if(Session["user_no"]!=null||Session["SysDs"]!=null)
然后我想可能是DataGrid里为空,但不知为什么编译可以通过,执行不通过!

解决方案 »

  1.   

    Session["user_no"]为空,所以Session["user_no"].ToString就不行了!
      

  2.   

    if(Session["user_no"]!=null||Session["SysDs"]!=null)====>if(Session["user_no"]!=null && Session["SysDs"]!=null)
      

  3.   

    当Session为空时,就会出现此类情况..未将对象引用设置到对象的实例..其它也是一样
      

  4.   

    没有可能
    zjsen(星愿:回贴也是一种学习方法)正解
      

  5.   

    楼上的if(Session["user_no"]!=null && Session["SysDs"]!=null)
    试了不行。
      

  6.   

    try()
    Session["user_no"].tostring()取值判断
      

  7.   

    你不要用Session["xx"].ToString()
    这样会有空引用异常你还是用Convert.ToString(Session["xx"])这样的方式来处理吧
     SysData.zhDoCommand (Convert.ToString(Session["user_no"]),DateTime.Now.ToString() ,this.ToString().Substring(4,this.ToString().Length - 9),Convert.ToString(Session["c_id"]),"select",SqlStr,TableName,true);
      

  8.   

    那为什么我点DataGrid的选择按钮它绑定不了呢?即点选择按钮DataGrid没了,(刚开始是有数据的)。
      

  9.   

    每个动作都需要bind数据的,你是不是没有bind??
      

  10.   

    如果没有绑定的话,Page_Load时又有DataGrid,并且充满数据
      

  11.   

    把绑定数据的方法放在Page_Load的这里
    if (!this.Page.IsPostBack)
    {
    //绑定数据的方法
    }