[英]Looping through records and assigning to a hashtable
我有一個如下所示的SQL表布局
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”]始終是第一個答案...我如何遍歷表中的每一行並返回值?
請有人可以幫助我,讓我擺脫痛苦。...:-(
但是無論我做什么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;
}
.Read一次前進一個記錄。 您的每個da [“ UserAnswer”]調用都在同一條記錄上進行操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.