我在我的数据库中有两个表,我在其中查询,一个名为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?
我希望这是有道理的,谢谢你。
答案 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