Session存储DataTable数据变了,不知道咋回事
//首先给Session赋值DataTable mydt = getdatatable();
session["tb"]=mydt;
//另外一个页面获取此Session里面的datatable
DataTable dt = new DataTable();
dt = (DataTable)Session["tb"];
//然后我给dt加了一列
dt.Columns.Add("签收人");
//又删除了列
dt.Columns.Remove("ID");
我操作的是被赋值后的DataTable
为什么Session["tb"]里面的DataTable也跟着变了呢?
我到另外一个页面再获取Session["tb"] 是被修改过的DataTable --------------------编程问答-------------------- DataTable是引用类型
DataTable dt = new DataTable();
dt = (DataTable)Session["tb"];
虽然你产生了一个新的DataTable
但是马上你又让它指向了Session中的那个。
修改它当然所有引用它的都变了。 --------------------编程问答-------------------- 那我应该怎么做才能保存这个table,重新查询太慢了! --------------------编程问答-------------------- 自己写循环拷贝 --------------------编程问答-------------------- 你是修改的对象,所以会修改。
用Clone()吧。 --------------------编程问答-------------------- dt = (Session["tb"] as DataTable).Copy();
补充:.NET技术 , ASP.NET