简体   繁体   English

如何从Java Netbeans中的GUI更新表?

[英]How to update table from GUI in Java Netbeans?

I'm designing a GUI using Java Netbeans and am trying to insert values into the table from the GUI fields. 我正在设计使用Java Netbeans的GUI,并试图从GUI字段中将值插入表中。 It shows no error , but nothing is getting inserted. 它没有显示错误,但是没有插入任何内容。 Here is my code : 这是我的代码:

Statement stmt = null;
try {

    String sql = "Insert into Elective (subject_code,topic,syllabus,credit,Expert_ID,startsession,endsession) values (?,?,?,?,?,?,?)";
    pst = conn.prepareStatement(sql);
    String subject = Subject_code.getSelectedItem().toString();
    pst.setString(1, subject);
    pst.setString(2, topic.getText());
    pst.setString(3, syllabus.getText());
    pst.setString(4, credit.getText());

    String Expert = Expert_ID.getSelectedItem().toString();
    pst.setString(5, Expert);

    int y1 = startsession.getYear();
    int y2 = endsession.getYear();
    pst.setInt(6, y1);
    pst.setInt(7, y2);
    //ResultSet executeQuery = pst.executeQuery();
    stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("SELECT * FROM Elective;");
    while (rs.next()) {
        String subject_code1 = rs.getString("subject_code");
        String topic1 = rs.getString("topic");
        String syllabus1 = rs.getString("syllabus");
        String credit1 = rs.getString("credit");
        String Expert_ID1 = rs.getString("Expert_ID");
        int startsession1 = rs.getInt("startsession");
        int endsession1 = rs.getInt("endsession");
        System.out.println("Subject Code = " + subject_code1);
        System.out.println("Topic = " + topic1);
        System.out.println("Syllabus=" + syllabus1);
        System.out.println("Credit = " + credit1);
        System.out.println("Expert_ID = " + Expert_ID1);
        System.out.println("Start session = " + startsession1);
        System.out.println("End session = " + endsession1);
        System.out.println();
    }
    rs.close();
    stmt.close();

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

you should use executeUpdate() to do updates to database instead of executeQuery() method and executeUpdate() doesn't return a ResultSet . 您应该使用executeUpdate()而不是executeQuery()方法对数据库进行更新,并且executeUpdate()不返回ResultSet

use 采用

 pst.executeUpdate();

not

ResultSet executeQuery = pst.executeQuery();//not correct

don't know why you have commented that line.presumably that's why you don't get any error 不知道为什么要注释该行。大概这就是为什么您不会收到任何错误的原因

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM