簡體   English   中英

遍歷記錄並分配給哈希表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM