将数据集附加到会话变量

时间:2013-08-23 20:24:04

标签: c# asp.net visual-studio-2010 session

我知道如何将数据集添加到会话

Dataset ds = GetResults();
Session["xyz "] = ds;

有没有办法可以将数据集附加到会话中?

我正在尝试做类似

的事情
  Session["xyz"] = ds + ds1; //ds1 is another dataset 
or  Session["xyz"] = ds + (Dataset)Session["xyz"]; 

它会抛出一个错误..有没有办法做到这一点?

3 个答案:

答案 0 :(得分:2)

您可以将DataSets存储在可以存储在会话中的List<DataSet>中。或者您可以使用Tuple<DataSet, DataSet>

Session["xyz"] = Tuple.Create(ds1, ds2);

稍后您可以通过以下方式访问它们:

var bothDataSets = (Tuple<DataSet, DataSet>)Session["xyz"];
DataSet d1 = bothDataSets.Item1;
DataSet d2 = bothDataSets.Item2;

但是,为什么需要在Session中存储这些(通常)大对象?

答案 1 :(得分:2)

DataSet 对象具有合并方法

((DataSet)Session["xyz"]).Merge(ds1) ;

答案 2 :(得分:0)

你可能会看到类似这样的错误。

运算符'+'不能应用于'System.Data.DataSet'和'System.Data.DataSet'类型的操作数

允许您添加DataSet的无过载方法必须查看您为什么要定义一个。我想你可以创建一个DataSet对象的集合。也许是字典,例如

Dictionary<DataSet> mydata = new Dictionary<DataSet>();

然后使用Session来存储/检索“mydata”