2013-08-23 3 views
0

Я знаю, как добавить набор данных сессииприсоединяя набор данных для переменного сеанса

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

Есть ли способ, я могу добавить набор данных к сессии?

Я пытаюсь сделать что-то вроде

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

Он выдает ошибку .. есть способ сделать это?

+1

Какую ошибку делает это бросить ... – Lloyd

+0

это говорит оператор + не может быть применен к операндам System.Data.DataSet и System.Data.DataSet – CodeNinja

ответ

2

DataSet объекты имеют Слияние методы

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

Но смешайте _merges_ таблицы друг с другом. Я полагаю, что OP хочет, чтобы они оставались раздельными. –

+0

@TimSchmelter он использует слово «append», что означает «добавить к уже существующему набору данных» –

+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; 

Однако, почему вы должны хранить такие (обычно) большие объекты в сессии на всех?

+0

Вот мой сценарий. У меня есть элемент управления сеткой и выпадающий список. Каждый раз, когда в выпадающем списке происходит событие изменения индекса, он извлекает строку из базы данных. Я хотел бы добавить эту строку к уже существующим элементам представления сетки, и для этого я хочу хранить старые элементы в сеансе, и каждый раз, когда происходит событие изменения индекса, я добавляю строку в сеанс. Дайте мне знать, если вы думаете, что есть лучший способ сделать это. – CodeNinja

0

Вы предположительно видите что-то ошибку, как это.

Оператор «+» не может быть применен к операндам типа «System.Data.DataSet» и «» System.Data.DataSet

не метод перегрузки, что позволяет добавлять DataSets это должны понять, почему вы бы хотели определить его. Полагаю, вы могли бы создать коллекцию объектов DataSet. Возможно, словарь, например.

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

Затем используйте сеанс для хранения/извлечения «MyData»

Смежные вопросы