ExecuteReaderを使用して、QuestionnaireIDがクエリに一致したときにQuestionTextの値を返しています。(データベース設計を参照)
ただし、私の問題は、プロジェクトを実行すると、ExecuteReaderが最後に入力された値のみを返すことです。たとえば、質問IDが1の場合に3つの質問(A、B、C)を作成すると、ExecuteReaderは質問Cのみを返します。
同じquestionIDを持つQuestionText列のすべての値を返すにはどうすればよいですか?
データベース設計
****。cs**
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;
}
ストアドプロシージャ
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
前もって感謝します。