在 Windows Vista 上使用 Ms Access 2003Java 1.7.0_45 和 NetBeans IDE 7.4
我正在尝试对名为 EMPLOYEE 的表运行一个简单的更新查询
stmt.executeUpdate("UPDATE EMPLOYEES SET Name='John' WHERE Code='A07'");
但是代码为 A07 的员工姓名在数据库中不会更改。
其他查询(插入,选择)工作正常,例如:
stmt.executeUpdate("INSERT INTO EMPLOYEES VALUES (....)");
或
ResultSet rs = stmt.executeQuery("SELECT * FROM " + nombreTabla);
按预期工作。
对于更新,我尝试了不同的东西,但没有一个有效:
对 UPDATE 查询使用 executeQuery 而不是 executeUpdate 引发 SQL 异常:"未生成 ResultSet"
在字段中添加"[ ]"也不会更新记录:
stmt.executeUpdate("UPDATE EMPLEADOS SET [NAME]='John' WHERE [Code]='A07'");
我以前从未使用过 Access,我不知道我做错了什么。可能是特权问题?在这种情况下,我如何授予更新权限?
更新未写回 Access 数据库的问题通常是由于未通过调用其.Close()
方法显式关闭数据库Connection
对象而导致的。在 JDBC-ODBC 下,如果连接对象只是在连接仍在.Open()
时超出范围,则有时会丢弃挂起的更新。