SEVERE: null
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query. at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6956) at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7113) at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3109) at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:337) at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(JdbcOdbcStatement.java:287)
public Student_Registration() {
super("");
initComponents();
try {
//DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:student");
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Check connectivity with database", "Error", 3);
}
}
//向Db插入数据
String insertinfo = "insert into student_info(name,dob,address,ten,twelve,sex,mail,mobile) values('" + txt_name.getText().toString() + "', '" + txt_dob.getText().toString() + "', '" + txt_add.getText().toString() + "', '" + txt_10.getText().toString() + "','" + txt_12.getText().toString() + "','" + cb_sex.getSelectedItem().toString() + "','" + txt_mail.getText().toString() + "','" + txt_mobile.getText().toString() + "')";
try {
Statement ist = con.createStatement();
ist.executeUpdate(insertinfo);
} catch (SQLException ex) {
Logger.getLogger(Student_Registration.class.getName()).log(Level.SEVERE, null, ex);
System.out.printf("" + insertinfo);
}
最佳答案
看起来这只是 ODBC 数据源发生的文件权限问题。
MS 说;
This problem occurs if you try to edit a worksheet that is saved or opened as ReadOnly.
注意:ReadOnly 是 ODBC 连接到 Excel 的默认设置,无论是否有数据源名称 (DSN)。因此,用户必须始终更改该设置才能编辑数据。
http://support.microsoft.com/kb/316475
您可以检查数据库文件和 DSN 设置中的只读属性。
要解决此问题,请使用以下方法:
- 确保 Recordset 对象的 LockType 属性不是 设置为只读。
- 确保您尝试打开的文件
如果您通过 DSN 连接,请按照以下步骤操作:
- 打开控制面板,然后单击“ODBC 数据源管理器”。
- 双击您的 DSN。
- 在“ODBC Microsoft Excel 设置”对话框中,单击“选项”。
- 确保未选中“只读”复选框。
关于java.sql.SQLException : [Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20512183/