问题如下:
项目首先用户要登陆,然后将登陆用户的名字保存到session中
登陆成功后跳转到显示数据界面,数据的显示是根据用户的名字而定的,也就是session中的值。
数据的绑定我用的是gridview,在模板中加入了删除按钮。
问题是,我删除一条数据,可以顺利的删除,如果紧接着删除另外一条数据的话,就会报错:
未将对象引用设置到对象的实例。
也就是session中的值为空了,请问怎么解决这样的问题啊???
高手帮忙分析下,谢谢!protected void Page_Load(object sender, EventArgs e)
    {
        if(!IsPostBack)
        {
            BindMission();
            BindLedName();
        }
              
    }    private void BindMission()
    {
        string UserName = Session["UserName"].ToString();
        DataSet ds1 = oper.BindMs(UserName);
        GVMission.DataSource = ds1.Tables["任务表"];
        GVMission.DataBind();
    protected void GVMission_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        string MissionName = GVMission.Rows[e.RowIndex].Cells[0].Text;
        oper.DelectMission(MissionName);
        BindMission();
}主要代码如下

解决方案 »

  1.   

    Session["UserName"] 没次都丢失,还是偶尔的.
    如过是每次都丢失,一般是你删除的代码中把Session["UserName"]释放了
      

  2.   

    代码没问题
    分析Session丢失原因,主要是因为站点目录文件更新导致应用程序重启,并且重新分配内存,所以保存在内存中的session自然会丢失。
    实际上在。net中,session主要有一些几种存储方式:
    <sessionState mode="InProc"></sessionState>//保存在内存中
    <sessionState mode="SQLServer"></sessionState>//保存在数据库中
    <sessionState mode="StateServer"></sessionState>//保存在进程中(ASP.NET 状态服务)
    要解决Session丢失的问题,可以选择将其保存到数据库或状态服务中。
    参考
    http://www.cnblogs.com/crescens/articles/1100478.html
      

  3.   

    要么不用session,用cookies要么将你的session保存到一个变量中单独放起来
    你这很明显的造成每次一加载就丢失
      

  4.   

        protected void GVMission_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            string MissionName = GVMission.Rows[e.RowIndex].Cells[0].Text;
            oper.DelectMission(MissionName);
            BindMission();
    }
    应该是这事件的问题,你看下直接在按纽事件里写删除程序看下.
      

  5.   

    你确定是session丢失,而不是其他的什么参数丢失吗?这样看来session应该不会那么容易丢失呀
    不行的话试试在网页上隐藏一个控件保存数据,或使用viewstate再试试
      

  6.   

    问题是,我删除一条数据,可以顺利的删除,如果紧接着删除另外一条数据的话,就会报错: 
    未将对象引用设置到对象的实例。 
    也就是session中的值为空了,请问怎么解决这样的问题啊??? 
    高手帮忙分析下,谢谢! 我感觉不一定是Session丢失,上面说的前两句和后一句没有必然的因果关系,跟踪一下试试。
      

  7.   

    你的数据放在bin或者App_Code目录下?还是因为操作更改了bin/或者App_Code下面的文件导致w3wp程序重启
      

  8.   

    找不到原因,可以删除记录后再次给session负值
      

  9.   

    我的数据库在App_Date下,我跟踪过了,的确session的值为null了