2014-03-27 36 views
0

我在我的数据库中查询了两个表,其中一个名为QuestionsTable和AnswersTable。访问字符串列表数组中的数据

我从AnswersTable查询questionID并将ID存储在字符串数组中。像这样:

List<string> questionId = new List<string>(); 


     private void button1_Click(object sender, EventArgs e) 
     { 
      Query = "SELECT * FROM TblAnswers WHERE UserId = '1'"; 
      theReader = conn.ExecuteStatement(Query); 
      while (theReader.Read()) 
      { 

       questionId.Add(theReader["QuestionId"].ToString()); 


      } 

要访问存储在该数组中的这些ID的,我这样做:

String Id = questionId[0]; 


      Query = "SELECT * FROM QuestionsTable WHERE Id = '" + Id + "'"; 
      theReader = conn.ExecuteStatement(Query); 
      while(theReader.Read()) 
      { 
       question = theReader["Question"].ToString(); 

      } 

万一上面描述我只是询问一个问题,即“用户1”尝试,但我的主问题是,让“用户1”试图提出10个问题,我想从字符串数组中查询并访问10个问题的ID,我将不得不定义10个变量来访问每个QuestionID? e.g我将不得不这样做:

String Id = questionId[0]; 
String Id2 = questionId[1]; 
String Id3 = questionId[2]; 
String Id4 = questionId[3]; 

等多达10 ...

是不是有更简单的方法,我可以访问这些ID的没有定义10个变量?

我希望这是有道理的,谢谢。

回答

0

一个简单的解决方案,

你可以定义字符串列表来保存的问题,并遍历所有的ID,查询每个单独的问题,最后这个问题添加到定义的列表。

例如:

List<string> qustions = new List<string>(); 
foreach(var id in questionId) 
{ 
      Query = "SELECT * FROM QuestionsTable WHERE Id = '" + id + "'"; 
      theReader = conn.ExecuteStatement(Query); 
      while(theReader.Read()) 
      { 
       question = theReader["Question"].ToString(); 
       qustions.add(question); 
      } 

} 
+0

我认为这将起作用..只要我靠近笔记本电脑,我会试一试 – user3434135