java.sql.SQLException:[Microsoft][ODBC Microsoft Access驱动程序]操作必须使用可更新的查询

java.sql.SQLException:[Microsoft][ODBC Microsoft Access驱动程序]操作必须使用可更新的查询,java,jdbc,odbc,Java,Jdbc,Odbc,java.sql.SQLException:[Microsoft][ODBC Microsoft Access驱动程序] 操作必须使用可更新的查询。在 位于的sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6956) 位于的sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7113) 位于的sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(jdbodbc.j

java.sql.SQLException:[Microsoft][ODBC Microsoft Access驱动程序] 操作必须使用可更新的查询。在 位于的sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6956) 位于的sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7113) 位于的sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(jdbodbc.java:3109) execute(JdbcOdbcStatement.java:337) 在 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);
    }


}

看起来这只是ODBC数据源中出现的文件权限问题

她说

如果试图编辑保存或删除的工作表,则会出现此问题 以只读方式打开

注意:ReadOnly是到Excel的ODBC连接的默认设置,包括或不包括数据源名称(DSN)。因此,用户必须始终更改该设置以编辑数据

您可以在db文件和DSN设置中检查只读属性

要解决此问题,请使用以下方法:

  • 请确保记录集对象的LockType属性不为空 设置为只读
  • 确保您正在尝试打开的文件
  • 如果您是通过DSN进行连接,请执行以下步骤:

    • 打开“控制面板”,然后单击“ODBC数据源管理员”
    • 双击您的DSN
    • 在“ODBC Microsoft Excel设置”对话框中,单击“选项”
    • 确保未选中只读复选框
 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);
    }


}
 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);
    }