我有jdbc和Access的更新查询问题。数据库名称是'avi',它里面有一个名为'part1'的表。 Table
代码:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:avi");
Statement statement = con.createStatement( );
String queryTemp="UPDATE part1 SET level=5 where qid=1";
statement.executeQuery(queryTemp);
该表确实有一个qid = 1的条目。 这是控制台错误:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Syntax error in
UPDATE statement.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
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.executeQuery(JdbcOdbcStatement.java:2
53) 在Conn.updt(Conn.java:47)
第47行是statement.executeQuery(queryTemp);
我在查询中出错了吗?
答案 0 :(得分:2)
您需要在保留字中添加方括号:
[level]
http://office.microsoft.com/en-us/access-help/sql-reserved-words-HP001032249.aspx
答案 1 :(得分:0)
替换上述声明
statement.executeUpdate(queryTemp);
与
statement.executeQuery(queryTemp);
“executeQuery()”用于ddl statemets,当“executeUpdate()”用于dml语句时,例如insert,update与行操作相关!!!!!!!!