我通過ODBC驅動程序使用Java與Microsoft Access。當我爲主鍵插入重複條目時,它給我一個錯誤:java.sql.SQLException: General error
。我想向用戶顯示一條消息,表明這條記錄已經存在,但我認爲這個異常也可以由ODBC在其他一些情況下拋出。所以我發現每條消息都有錯誤代碼(ref),但我沒有發現主鍵違例的錯誤代碼。任何人都可以告訴我哪些錯誤代碼是用於MS Access的ODBC的主鍵違例?使用ODBC與MS Access的主鍵違規錯誤代碼
這是基本的代碼
String qry = "INSERT INTO customers VALUES ('" + txtReg.getText()
+ "' ,'" + txtName.getText() + "', '" + txtCity.getText() + "' ,'" + txtCell.getText() + "')";
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:MyDB");
Statement st = con.createStatement();
st.executeQuery(qry);
st.close();
con.close();
} catch (ClassNotFoundException ex) {
JOptionPane.showMessageDialog(this, "Error: " + ex, "Error!", JOptionPane.ERROR_MESSAGE);
} catch (SQLException ex) {
JOptionPane.showMessageDialog(this, "Error: " + ex, "Error!", JOptionPane.ERROR_MESSAGE);
}
這些txtName
等是JTextFields
。下面是完整的堆棧跟蹤
connected
st created
Error code: 0
SQLState: S1000
Messsage: General error
java.sql.SQLException: General error
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)
at gui.InsertFileCode.btnInsertActionPerformed(insertFileCode.java:399)
請問您可以添加您的代碼。 – Azad
'Azad'我添加了代碼。 –
看到答案,希望它有幫助 – Azad