我正在尝试将数据插入存储在计算机上的Access数据库中, 但是当我运行以下代码时,会出现例外
这是一个例外:
Dec 14,2011 7:22:21 PM Ass3_lab.afterLogin $ 8 actionPerformed 严重:空 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);
}
}
});
有人可以帮我解决这个问题吗?
答案 0 :(得分:2)
GeneralError非常具有误导性。它可能发生的原因有多种: