我有一些麻烦使用会话变量,因为它们被用作引用,我想用它们作为值。使用变量作为值而不是作为参考
我得到这个调试运行我的解决方案,我创建了类似:
DataTable dt =
(DataTable)HttpContext.Current.Session[
"SearchReturn-DataTableSchema"];
// Adding Rows of Data to DataTable dt
HttpContext.Current.Session["SearchReturn-DataTable"] = dt;
((DataTable)HttpContext.Current.Session[
"SearchReturn-DataTableSchema"]).Rows.Clear();
return dt;
我的想法是在“DataTableSchema”只有与列的架构和数据表“的DataTable”的列+行。
问题是,当我清除DataTableSchema所有行,变量DT必须排清以及(!!)
如何避免这种情况?如何分配一个变量(在本例中是一个Session变量)作为一个值而不是一个参考?
谢谢。
回答
这
DataTable dt = (DataTable)Session["SearchReturn-DataTableSchema"];
需求是这样的:
DataTable dt = ((DataTable)Session["SearchReturn-DataTableSchema"]).Copy();
:-)
忘了所有关于DataTable.Copy():) – balexandre 2010-02-23 13:06:27