for(int i=0;i<dsAdmin.Tables[0].Rows.Count;i++)
                {
                    lblAdmin.Visible = true;
                    lblAdminNote.Visible = false;
                    Session["ProjectName"] = dsAdmin.Tables[0].Rows[i][0];
                    lblAdmin.Text += "你发布了:<a href='ProjectInfo.aspx'>"+dsAdmin.Tables[0].Rows[i][0]+"</a>项目<br/>";
                }安装上面的代码我读取出来了3个值:
你发布了:A项目
你发布了:B项目
你发布了:C项目
可是当我单击A的时候,因为for语句执行结束之后,session的值就是C了。大家有没有什么好的方法解决呢?

解决方案 »

  1.   

    dsAdmin.Tables[0].Rows[i][0];
    放到一个数组 或 list<T>Session["ProjectName"] = 这个数组;然操作这个数组
      

  2.   


    ++  定义一个变量把循环的值保存起来 然后在循环外把值赋给session就可以了
      

  3.   

     for (int i = 0; i < dsAdmin.Tables[0].Rows.Count; i++)
                    {
                        lblAdmin.Visible = true;
                        lblAdminNote.Visible = false;
                       
                        lblAdmin.Text += "你发布了:<a href='ProjectInfo.aspx?value=" + dsAdmin.Tables[0].Rows[i][0] + "'>" + dsAdmin.Tables[0].Rows[i][0] + "</a>项目<br/>";
                    }
                 ProjectInfo.aspx (你的接收页面)
                    Session["ProjectName"] = Request["value"].ToString();是不是更好些呢- -
      

  4.   

        Session["ProjectName"] = dsAdmin.Tables[0].Rows[i][0];
    在Session存个对象,对象包含需要的数据
      

  5.   

    累加吧Session["ProjectName"] =Session["ProjectName"].ToString()+ dsAdmin.Tables[0].Rows[i][0].ToString();
    用split分割
      

  6.   

    Session["ProjectName"] = dsAdmin.Tables[0].Rows[i][0];
    在循环里用session完全不理解啊
      

  7.   

    LZ打算用session保存什么那?没明白,你在循环里面给session赋值,肯定是最后一次那个值
      

  8.   

    你的session会覆盖掉上一个所以你必须要累加
      

  9.   

    这种东西随便搞个数组就可以了,还需要什么session啊