что означает это исключение ?? java.sql.SQLException: общая ошибка в Java с Access DB? - PullRequest
0 голосов
/ 14 декабря 2011

Я пытаюсь вставить данные в базу данных Access, хранящуюся на моем компьютере, но когда я запускаю этот следующий код, появляется исключение

Это исключение:

14 декабря 2011 г. 19:22:21 Ass3_lab.afterLogin $ 8 actionPerformed SEVERE: ноль java.sql.SQLException: общая ошибка at sun.jdbc.odbc.JdbcOdbc.createSQLException (JdbcOdbc.java:6986) at sun.jdbc.odbc.JdbcOdbc.standardError (JdbcOdbc.java:7114) at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect (JdbcOdbc.java:3110) at sun.jdbc.odbc.JdbcOdbcStatement.execute (JdbcOdbcStatement.java:338) at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate (JdbcOdbcStatement.java:288)

Я написал этот метод для вставки:

public void saveDataInDB(int std_id,int course_id,String semester_no) throws SQLException {  
    Connection conn=null;
    PreparedStatement pstmt=null;

    String insertSQL="insert into Registered_course (std_id,course_id,semester_number) values(? , ?,?)";
    try{
        conn=con.getConnection();
        pstmt=conn.prepareStatement(insertSQL);

        pstmt.setInt(1,std_id);
        pstmt.setInt(2,course_id);
        pstmt.setString(3,semester_no);
        pstmt.executeUpdate();

        pstmt.close();
        conn.close();
    }  // end of try
    finally {
        if(conn != null){
            conn.close();
        }
        if (pstmt != null) {
            try {
                pstmt.close();
            } catch (Exception ignore) {
            }
        }
    }
}

И я назвал этот метод внутри слушателя действия:

save.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e){
        try {
            Login l = new Login();  

            for(int t=0;t<=numberOfRowsInTableOne;t++){
                i.saveDataInDB(l.idFromDB,course_id[t],semester_no);
            }
        } catch (SQLException ex) {
            Logger.getLogger(afterLogin.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
});

Может кто-нибудь помочь мне решить эту проблему, пожалуйста?

1 Ответ

2 голосов
/ 14 декабря 2011

GeneralError вводит в заблуждение. Это может произойти по разным причинам:

  1. Неверное имя пользователя, пароль.
  2. Разница в разрядности драйверов Java и ODBC (проверьте, установлены ли для java и ваших драйверов odbc 32 или 64)
  3. Очень раздражает, но воссоздание DSN работает (не знаю почему, но иногда бывает).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...