2011-02-27 2 views
2

У нас есть Gridview, который заполняется через DataSource. Выбор SelectMethod в источнике данных является функцией класса BL, которая вызывает хранимую процедуру, которая возвращает 2 набора результатов. Первый набор результатов должен заполнить gridview, поэтому он возвращается с помощью ключевого слова «return», и это работает нормально. Второй набор результатов для последующего использования (мы не разделяем их на 2 SP, потому что запрос применяет ту же логику для получения обоих наборов результатов, и это длинная логика, поэтому мы не хотим запускать ее дважды). Наш вопрос заключается в том, как сохранить второй результат для последующего использования.сохранение второго набора результатов из SelectMethod

Первоначально мы думали о создании глобального члена в классе BL и сохранении в нем результата. Но проблема в том, что, когда нам нужно использовать второй набор результатов, мы не находимся в том же классе, где имеет вид gridview, и что другой класс создает собственный экземпляр класса BL, и, конечно, этот объект doesn 't данные (данные находятся в объекте, созданном на странице aspx, в которой находится gridview).

Итак, мы подумали о передаче параметра «out» в SelectMethod источника данных, и этот метод сохранил бы второй результирующий набор для этого параметра out. Но это не работает. Я думаю, мы не знаем, как сообщить методу, что параметр «вне». То, как мы передаем другие параметры, - это определить метод, который привязан к событию OnSelecting, а затем мы передаем его так:

e.InputParameters ["schoolCode"] = currentSchoolCode;

e.InputParameters ["levelCode"] = currentLayer;

И т. Д. Однако мы не знаем, как сообщить методу, что параметр «вне». Когда мы немного поработали в googled, все, что мы могли найти, это то, как сообщить методу, если параметр является выходным параметром, т.е. переданным в SP в качестве выходного параметра. Но это не так.

Поэтому мы будем очень благодарны, если вы поможете нам найти решение для:
«Рассказать» метод, что определенный параметр «вне», чтобы получить значение в нем.

спасибо.

ответ

0

Хм ... не совсем понимаю вашу озабоченность, но, как насчет этого? передать свой набор данных уровня представления, а затем:

dataset.Tables(0) 
dataset.Tables(1) 

или

DataReader.NextResult() 
Смежные вопросы