所以我正忙着开发一个asp.NETC测验应用程序,用户可以登录并参加测验。测验的值/问题是从数据库中获取的,它显示并正常工作,但问题是,当所有问题都已回答时,我有一个按钮,上面写着“再次进行测验”,我将用户重定向到开始页,在那里测验应该重新加载,但它只是没有显示任何内容,(我认为它只在数据库中循环一次,就是这样,否则我可能会错)
这是我的c代码pageload()
MySqlDataAdapter adp = new MySqlDataAdapter("SELECT * FROM question WHERE category_id=" + categoryID, db.getCon());
adp.Fill(ds);
try
{
// teller = ds.Tables[0].Rows[i][0].ToString();
lblQuestion.Text = ds.Tables[0].Rows[i][1].ToString();
rbA.Text = ds.Tables[0].Rows[i][2].ToString();
rbB.Text = ds.Tables[0].Rows[i][3].ToString();
rbC.Text = ds.Tables[0].Rows[i][4].ToString();
rbD.Text = ds.Tables[0].Rows[i][5].ToString();
correctAnswer = ds.Tables[0].Rows[i][6].ToString();
infoQuestion = ds.Tables[0].Rows[i][7].ToString();
}
catch (Exception)
{
}
然后按一下按钮
private void nextQuestion()
{
i++;
lblQuestion.Text = ds.Tables[0].Rows[i][1].ToString();
rbA.Text = ds.Tables[0].Rows[i][2].ToString();
rbB.Text = ds.Tables[0].Rows[i][3].ToString();
rbC.Text = ds.Tables[0].Rows[i][4].ToString();
rbD.Text = ds.Tables[0].Rows[i][5].ToString();
}
1条答案
按热度按时间zu0ti5jz1#
页面加载集中
i=0
所以不会超出范围。你不能在测验结束后重置它在此处添加一些日志记录或弹出消息。像这样吞下例外永远不是个好主意。
添加
try-catch
在nextquestion()中,这样您就可以在填写下一个问题时抓住问题。这样,您只能在页面加载时执行此操作