【问题标题】:How to reload the same values from database如何从数据库重新加载相同的值
【发布时间】:2018-11-16 08:23:24
【问题描述】:

所以我正忙于一个 asp.net c# 测验应用程序,用户可以在其中登录并参加测验。测验的值/问题是从数据库中获取的,它显示和工作正常,但问题是当所有问题都得到回答后,我有一个按钮,上面写着“再次进行测验”,我将用户重定向到开始页面测验应该重新加载的地方,但它什么也没显示,(我认为它只循环一次数据库,就是这样,否则我可能错了)

这是我的 C# 代码 页面加载()

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();
    }

【问题讨论】:

  • 在返回开始时你应该设置i=0; 也删除try catch(Exception) 可能你正在吞下索引超出范围异常。
  • 我们需要更多代码。显示你做的代码,很难这样说
  • 请添加一个在测验结束时触发的代码。另外,你在哪里设置变量 i 的值?
  • 我用 try catch 触发了它

标签: c# mysql asp.net database webforms


【解决方案1】:

在 Page_Load 中设置 i=0,这样它就不会超出范围。测验完成后您不会重置它

在此处添加一些日志记录,或弹出消息。像这样吞下异常绝不是一个好主意。

catch (Exception)
{

}

在 nextQuestion() 中添加 try-catch 以便您在填写下一个问题时可以发现问题。这样,您只在 Page_Load 上执行此操作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 2014-07-01
    • 2013-03-27
    • 2013-01-23
    • 2011-08-22
    • 2014-03-31
    • 2015-06-22
    相关资源
    最近更新 更多