访问字符串列表数组中的数据

时间:2014-03-27 18:43:17

标签: c#

我在我的数据库中有两个表,我在其中查询,一个名为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?例如,我必须这样做:

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

依此类推10 ......

在没有定义10个变量的情况下,我是否可以更轻松地访问这些ID?

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

2 个答案:

答案 0 :(得分: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);
           }

}

答案 1 :(得分:0)

你可以用questionId [i]替换ID。例如:

Query = "SELECT *  FROM QuestionsTable WHERE Id = '" + questionId[0] + "'";

我不太确定您使用的数据库软件。但我也会研究SQL的IN命令。这样你就可以测试一个值列表,只需要查找一个特定的值。 http://msdn.microsoft.com/en-us/library/ms177682(SQL.90).aspx