-1
private void cmd_nextActionPerformed(java.awt.event.ActionEvent evt) {     

  pst=conn.prepareStatement("select * from questions where subject= ?");
            pst.setString(1, "websites");
            rs=pst.executeQuery();
   while(rs.next())
            {

                 qs=rs.getString("question");
                 option1=rs.getString("option1");
                 option2=rs.getString("option2");
                 option3=rs.getString("option3");
                 txt_quest.setText(qs);
                jcb_opt1.setText(option1);
                jcb_opt2.setText(option2);
                jcb_opt3.setText(option3);

       }
    catch(Exception ex)
    {
        JOptionPane.showMessageDialog(null, ex);
    }
            }

我想在单击按钮时从表中获取下一行,在单击next按钮时获取上一行previous。有什么简单的方法可以做到这一点...?

4

2 回答 2

1

您不应该在只想获取 rs.next() 的方法中“从问题中选择 * ”。如果你想得到 rs.previous() 你会再次“选择 *”吗?将您的选择放在程序的开头。

设计良好的cmd_nextActionPerformed需要考虑三种情况:

  1. 您的数据库表是空的,或者只有一个条目。在这种情况下,应该禁用下一个按钮,因为没有下一个条目。

  2. 你有一个下一个条目。获取数据并刷新 JTextFields。应该启用下一步按钮。

  3. 你在最后。在 rs.next() 检查之后,如果 rs.isAfterLast() 返回 true,那么您需要转到 rs.last() 并留在那里。下一步按钮应该被禁用。

好消息是cmd_previousActionPerformed是对称的。

于 2013-04-08T21:09:55.390 回答
0

接下来,

rs.next()

对于以前,

rs.previous();
于 2013-04-09T17:06:39.210 回答