我试图检索我放入会话变量的数据表,但是当我这样做时,表示没有列......
我以前在VB.NET中做过这个,我现在正在使用C#,它运行得很好,据我所知,除了显而易见的语法更改之外,代码没有任何变化。
编辑:
当我查看数据可视化窗口时,dt(第2部分)变量具有正确的数据,但我注意到与数据表关联的其他属性是绝对的。当我用鼠标将鼠标悬停在一个看起来很正常的数据表上时,它看起来如下:“dt ----- {System.Data.DataTable}”但在我正在处理它的类中看起来像“dt ----- {}”。此外,在我将会话变量返回到dt之后我克隆它(dtclone = dt.clone();)并且数据visulizer中的克隆是空的....究竟是什么!
编辑2:
我现在也尝试将第一个数据表转换为数据集,将其放入会话变量中,然后将其恢复为类中的数据表。
我开始怀疑它是否是一个问题:
dt.Load(sqlReader);
数据确实在数据集可视化工具中显示,但在克隆后不会出现。
以下代码。
非常欢迎所有帮助!
提前致谢
克里斯
1)webhandler中的SQL命令,其结果填充要放入会话变量的数据表。
DataTable dt = new DataTable();
SqlDataReader sqlReader= default(SqlDataReader);
SqlDataAdapter sqlAdapter = new SqlDataAdapter();
sqlReader = storedProc.ExecuteReader(CommandBehavior.CloseConnection);
dt.Load(sqlReader);
System.Web.HttpContext.Current.Session["ResultsTable"] = dt;
2)在表中执行计算的类中的部分代码:
DataTable dt = (DataTable)HttpContext.Current.Session["ResultsTable"];
答案 0 :(得分:0)
设置Session Var后你是否调用了DataTable dispose? 因为如果你这样做,解决方案是这样的:
System.Web.HttpContext.Current.Session["ResultsTable"] = dt.Copy();