本帖最后由 carrotgirl2008 于 2013-03-21 18:06:19 编辑

解决方案 »

  1.   

    从数据库里取数据出来,然后放在缓存里,
    然后用户表里的数据从这个缓存表里copy出来  string strTableName = "Subtable" + this.Session["userid"].ToString();
                     DTable =dtCache.Copy(); //dtCache是缓存里的数据
                     DTable.TableName=strTableName;
     
      

  2.   

         static DataTable DTable;
    问题在这里的定义 
    static的定义是整个应用程序全局只保存这一份数据,这样的话后面登录的用户就会把前面登录用户的数据顶掉了。
    你可以这样
    static DataSet ds;
    DataTable DTable;
        if (!IsPostBack)
                { 
                    if(ds==null) ds = new DataSet();
                    string strTableName = "Subtable" + this.Session["userid"].ToString();
                    if(ds[strTableName"]==null){
                        DTable = new DataTable(strTableName);
                    }
                    else 
                        DTable = ds[strTableName];
                    ds.Tables.Add(DTable);
                }