weixin_53201607 2021-05-12 12:48 采纳率: 76.9%
浏览 91
已结题

java查询mysql数据库时rs.next()异常

想先在jpanel上输出数据库第一条的内容,再添加jbutton并给jbutton设置监听器,通过点击jbutton显示数据库下一条内容,
输出第一条内容正常,数据库中下一条数据不为空,但点击jbutton就会报错
代码如下 
public Mark(String s){
    this.setVisible(true);
    this.setResizable(true);
    this.setExtendedState(JFrame.MAXIMIZED_BOTH);
    this.setTitle("试卷批阅");
    this.setBounds(360,110,800, 600);

        dbconn = new QuestionBank();
        conn = dbconn.getConnection();
        String sql = "select * from "+s;
        PreparedStatement pstm = null;
        try {
            pstm = conn.prepareStatement(sql);
            ResultSet rs = pstm.executeQuery();
            rs.next();
            name = rs.getString("name");
            chooseGrade = rs.getString("chooseGrade");
            answer1 = rs.getString("answer1");
            answer2 = rs.getString("answer2");
           
        }
        catch (SQLException ex) {
            ex.printStackTrace();
        }



        temp = new JPanel();
        temp.setLayout(new GridLayout(2,10));
        exam = new JScrollPane(temp);
        this.add(exam);

        name1 = new JPanel();
        name1.setLayout(new GridLayout(6,1));
        temp.add(name1);
        name1.add(new JLabel("姓名 "+name));
        name1.add(new JLabel("选择题分数 "+chooseGrade));
        name1.add(new JLabel("主观题分数"));
        zggr = new JTextField();
        name1.add(zggr);
        next = new JButton("下一个");
        name1.add(next);
        temp.add(new JTextArea(answer1));
        temp.add(new JTextArea(answer2));
        
        next.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                try {
                    showAnswer();
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            }});



}

public void showAnswer() throws SQLException {
        if(rs.next()){
        name = rs.getString("name");
        chooseGrade = rs.getString("chooseGrade");
        answer1 = rs.getString("answer1");
        answer2 = rs.getString("answer2");
        
        temp.removeAll();
        temp.repaint();
        temp.validate();

        name1 = new JPanel();
        name1.setLayout(new GridLayout(6, 1));
        temp.add(name1);
        name1.add(new JLabel("姓名 " + name));
        name1.add(new JLabel("选择题分数 " + chooseGrade));
        name1.add(new JLabel("主观题分数"));
        zggr = new JTextField();
        name1.add(zggr);
        next = new JButton("下一个");
        name1.add(next);
        next.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                try {
                    showAnswer();
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            }
        });
        temp.add(new JTextArea(answer1));
        temp.add(new JTextArea(answer2));
        
       }

 

  • 写回答

4条回答 默认 最新

  • 关注

    String sql = "select * from "+s;

    打印sql出来看看,拿到数据库里面执行一下,看看SQL语句是否合法,查询失败了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 11月5日
  • 已采纳回答 10月28日

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算