2011-02-27 3 views
2

우리는 DataSource를 통해 채워지는 Gridview를 가지고 있습니다. 데이터 소스의 SelectMethod는 BL 클래스의 함수로 2 개의 결과 세트를 반환하는 저장 프로 시저를 호출합니다. 첫 번째 결과 집합은 gridview를 채울 것으로 가정하므로 "return"키워드를 통해 반환되며 제대로 작동합니다. 두 번째 결과 집합은 나중의 사용을위한 것입니다. 두 개의 결과 집합을 얻으려는 동일한 논리가 쿼리에 적용되므로 논리 곱을 두 번 실행하지 않으므로 두 SP로 구분하지는 않습니다. 우리의 질문은 나중에 사용하기 위해 두 번째 결과 집합을 저장하는 방법입니다.SelectMethod에서 두 번째 결과 집합 저장

처음에는 BL 클래스에 전역 멤버를 만들고 결과 집합을이 멤버에 저장한다고 생각했습니다. 그러나 문제는 두 번째 결과 집합을 사용해야 할 때 우리는 gridview가있는 클래스와 같지 않으며 다른 클래스는 BL 클래스 자체의 인스턴스를 만들고 그 객체는 물론 데이터가 있습니다 (데이터는 gridview가 상주하는 aspx 페이지에 의해 생성 된 객체에 있습니다).

그래서 우리는 "out"매개 변수를 데이터 소스의 SelectMethod에 전달할 것을 고려했으며,이 메서드는 두 번째 결과 집합을 해당 out 매개 변수에 저장합니다. 그러나 그것은 작동하지 않습니다. 나는 매개 변수가 "out"이라는 것을 메서드에 알려주는 방법을 알지 못한다고 생각합니다. 다른 매개 변수를 전달하는 방법은 OnSelecting 이벤트에 첨부 된 메서드를 정의한 다음 전달합니다.

e.InputParameters [ "schoolCode"] = currentSchoolCode;

e.InputParameters [ "levelCode"] = currentLayer;

등 그러나 매개 변수가 "out"임을 메서드에서 알 수있는 방법을 알지 못합니다. 우리가 조금봤을 때, 우리가 찾을 수있는 방법은 매개 변수가 출력 매개 변수, 즉 출력 매개 변수로 SP에 전달되었는지 여부를 메서드에 알리는 방법이었습니다. 하지만 여기서는 그렇지 않습니다. 특정 매개 변수는에 값을 얻기 위해, "밖으로"입니다
"말하는"방법 : 당신이 우리에 대한 해결책을 찾는 데 도움이 경우

그래서 우리는 매우 감사 할 것입니다.

감사합니다.

답변

0

음 ... 걱정하지 않으셔도됩니다.

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

또는

DataReader.NextResult() 
: 다음 프리젠 테이션 레이어에 데이터 세트를 전달