DataTable Foreach - 获取表数据但仅返回一个结果

时间:2015-04-28 11:11:35

标签: c# asp.net datatable

我有一个DataTable(来自本地数据库),我试图比较" QuestionID"在Answers表中,当前问题的Id,以便在RadioButtonList(ASP.Net)中显示与该问题相关的四个答案。

它正在努力获得第一个匹配并将其放入单选按钮列表的结果,但它没有得到匹配的其他三个。为什么?撕掉我的头发,盯着这段代码。

DataView dvQuestion = (DataView) sqldataQuestions.Select(new DataSourceSelectArguments());
lblQuestion.Text = string.Format(dvQuestion[questionCount]["QuestionText"].ToString());

DataView dvAnswers = (DataView) sqldataAnswers.Select(new DataSourceSelectArguments());
DataTable tblAnswers = dvAnswers.ToTable();
string value;

foreach (DataRow dr in tblAnswers.Rows)
{
      int questionID = Convert.ToInt32(dr["QuestionID"]);
      if (questionID == PgeNum)
      {
          string ansTxt = dr["AnswerText"].ToString();
          rblAnswers.Items.Add(ansTxt);
      }
}

1 个答案:

答案 0 :(得分:1)

试试这个。这将过滤QuestionId等于pgeNum的行。比你可以循环行以获得所需的结果。

DataRow[] rows =  tblAnswers.Select("QuestionID = " + PgeNum);
 if (rows.Length != 0)
    {
      foreach (DataRow dr in rows)
      {      
        string ansTxt = dr["AnswerText"].ToString();
        rblAnswers.Items.Add(ansTxt);
       }

     }