我有一个SQL表格,如下所示
QuestionNumber UserAnswer
1 4
2 11
3 3
4 2
5 Y
6 5
7 4
8 1
9 34
10 3
QuestionNumber UserAnswer
1 4
2 11
3 3
4 2
5 Y
6 5
7 4
8 1
9 34
10 3
我试图循环遍历每个值并将其分配给哈希表,然后返回哈希表等
SqlConnection Connection = new SQLAccess().CreateConnection();
SqlCommand Command = new SqlCommand("GetAllExamAnswersForUser", Connection);
Command.CommandType = System.Data.CommandType.StoredProcedure;
Command.Parameters.AddWithValue("@UserID", UserID);
SqlDataReader da = Command.ExecuteReader();
while (da.Read())
{
Details.Add("QuestionNumber1", da["UserAnswer"]);
Details.Add("QuestionNumber2", da["UserAnswer"]);
Details.Add("QuestionNumber3", da["UserAnswer"]);
Details.Add("QuestionNumber4", da["UserAnswer"]);
Details.Add("QuestionNumber5", da["UserAnswer"]);
Details.Add("QuestionNumber6", da["UserAnswer"]);
Details.Add("QuestionNumber7", da["UserAnswer"]);
Details.Add("QuestionNumber8", da["UserAnswer"]);
Details.Add("QuestionNumber9", da["UserAnswer"]);
Details.Add("QuestionNumber10", da["UserAnswer"]);
}
但无论我做什么da [“UserAnswer”]始终是第一个答案......我如何循环遍历表格中的每一行并返回值?
请有人帮助我,让我摆脱痛苦......: - (
答案 0 :(得分:4)
但无论我做什么,da [“UserAnswer”]始终是第一个答案......
嗯,我认为它始终是最后的答案。你覆盖以前的所有。
每次进行while循环时都会得到一条新记录,而QuestionNumber也是一列:
while (da.Read())
{
string answer = da["UserAnswer"];
string question = da["QuestionNumber"];
Details.Add(question, answer); // one per record
}
或者当您想要(重新)编号时:
int i = 1;
while (da.Read())
{
//Details.Add("QuestionNumber1", da["UserAnswer"]);
//Details.Add("QuestionNumber2", da["UserAnswer"]);
//...
Details.Add("QuestionNumber" + i, da["UserAnswer"]);
i = i + 1;
}
答案 1 :(得分:1)
.Read一次推进一条记录。您的每个da [“UserAnswer”]调用都在同一条记录上运行。