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

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 asp.textbox后台赋值前端不能显示什么原因
  • ¥15 宇视监控服务器无法登录
  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥15 DruidDataSource一直closing
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误