QuestionnaireID가 내 쿼리와 일치 할 때 ExecuteReader를 사용하여 QuestionText 값을 반환합니다. (데이터베이스 디자인 참조)ExecuteReader가 1 개의 값만 반환합니다.
그러나 내 문제는 프로젝트를 실행할 때 내 ExecuteReader 입력 된 마지막 값을 반환합니다. 예를 들어, 설문지 ID 1에 3 개의 질문 (A, B, C)을 작성하려는 경우 ExecuteReader는 질문 C 만 반환합니다.
동일한 설문지 ID를 가진 QuestionText 열의 모든 값을 어떻게 반환 할 수 있습니까?
데이터베이스 설계
****. CS **
USE [devworks_oscar]
GO
/****** Object: StoredProcedure [hbo].[GetQuestion] Script Date: 11/12/2011 13:12:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [hgomez].[GetQuestion]
(
@QUEST_ID int
)
AS
/*SET NOCOUNT ON;*/
SELECT QuestionText FROM [Questions] WHERE QuestionnaireID = @QUEST_ID
RETURN
감사에 저장 프로 시저
public string GetQuestionName(int QuestionnaireID)
{
string returnvalue = string.Empty;
SqlCommand myCommand = new SqlCommand("GetQuestion", _productConn);
myCommand.CommandType = CommandType.StoredProcedure;
myCommand.Parameters.Add(new SqlParameter("@QUEST_ID", SqlDbType.Int));
myCommand.Parameters[0].Value = QuestionnaireID;
_productConn.Open();
SqlDataReader test = myCommand.ExecuteReader();
while (test.Read())
{
returnvalue = test.GetString(0);
}
_productConn.Close();
return returnvalue;
}
dvance.
returnvalue = test.GetString(0);
당신이 마지막 값으로 남아있을 것입니다 수 있도록하여 DataReader에서 반환 된 다음 값으로 returnvalue
변수를 덮어 유지합니다 -
이 실제 코드 대신 단지
List<string>
의 모든 값을 보유하고를 반환하는 데 사용? 루프에서'returnvalue'를 덮어 쓰지 않고 마지막으로 할당 된 값을 반환하고 있습니까? –