Я использую ExecuteReader, чтобы вернуть значения QuestionText, когда QuestionnaireID соответствует моему запросу. (См. Дизайн базы данных)
Однако моя проблема в том, что когда я запускаю проект, мой ExecuteReader возвращает только последнее введенное значение. Например, если бы я должен был создать 3 вопроса (A, B, C) под вопросником ID, равным 1. ExecuteReader вернет только вопрос C.
Как я могу вернуть все значения в столбце QuestionText с одинаковым идентификатором вопросника?
Разработка базы данных
![enter image description here](https://i.stack.imgur.com/yYYAO.jpg)
****. 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
Заранее спасибо.