2011-01-06 8 views
0

사용자가 로그인 할 때 (첫 번째 데이터베이스 요청) 저장된 프로 시저에 암호와 사용자 ID를 변경 한 다음 다음에 사용할 세션에 넣은 사용자 레코드를 반환하는 사이트에서 작업하고 있습니다.하나의 요청으로 여러 데이터 집합 가져 오기?

이 후 두 번째 db 요청을 수행합니다. 그것은 캐시에 넣은 사용자의 주소를 반환합니다.

하나의 데이터베이스 요청에서 두 세트의 데이터 (사용자 레코드와 두 번째 테이블의 주소)를 얻을 수있는 방법이 있습니까?

plz이 가이드는 데이터 액세스를 위해 DAAB (현상 라이브러리 입력)를 사용하고 있습니다.

감사

답변

1

을 값을 얻을 수 있습니다 한 SP의 명령문은 두 개의 레코드 세트를 리턴합니다. SQL Management Studio에서 SP를 실행할 때 아래쪽 패널에 여러 개의 Grid가 표시되는지 확인합니다.

SP가 완료되면 C# 코드에서 SP를 호출하고 결과를 DataSet에로드하십시오. 데이터 세트에는 두 개의 테이블이 있으며 서로 다른 테이블에서 데이터를 가져올 수 있습니다.

+0

나를 안내해 주셔서 감사합니다. 데이터 테이블이나 데이터 세트를 사용하지 않습니다. 사용자 지정 개체를 사용하고 있습니다. 사용자 정의 객체를 사용하여 수행 할 수 있습니까? plz 조언. – haansi

+1

SP가 사용자 지정 개체를 반환하지 않으면 사용자 지정 개체에서 DB의 결과를로드합니다. 단일 값 또는 DataReader 또는 DataSet 중 하나를 반환하는 DAAB 데이터 집합을 가져 오면 데이터 집합의 데이터를 사용자 지정 개체에로드 할 수 있습니다. – hungryMind

+0

DataReader로 수행 할 수있는 방법이 있습니까? – haansi

1

당신은 저장 프로 시저에서이 선택 쿼리를 작성하거나 는 두 개의 질의 또 다른 후 하나를 실행합니다. 단일 쿼리에서는 DataSet에서 데이터를 실행하고 수신 할 수 있습니다.

ExecuteDataset을()는

그래서 두 테이블은 데이터 세트 내에서 반환됩니다. 당신이 경우 2 개의 선택 당신 같이 여러 SELECT 문을 가지고 당신의 SP를 수정 (0) dataset.tables (1)

감사

dataset.tables처럼

+0

안내 및 공유에 감사드립니다. 데이터 집합이나 데이터 테이블이 아닌 사용자 지정 개체를 사용하고 있습니다. uplz 좀 더 도움이 될 수 있습니다. – haansi

0

한 번에 두 개의 결과 세트를 가져 오는 것으로부터 얻을 수있는 것은 없지만 코드의 일관성이 떨어집니다. 논리적으로 분리 된 두 작업을 하나로 병합해야하는 이유는 무엇입니까? 그러한 의심스러운 메소드를 사용하는 대신 join을 사용하여 한 번에 모든 데이터를 포함하는 하나의 결과 세트를 얻을 수 있지만 여전히 잘못된 것처럼 보입니다. 나는 당신이 요구하고있는 이익을 얻을 수있는 좋은 방법을 볼 수 없습니다.

관련 문제