java - ms access 中查询值和目标字段的数量不相同

标签 java sql ms-access

我正在尝试执行下面的 SQL 插入语句,但遇到了下面列出的错误。希望能给一些建议,谢谢。

 public void addSale(String saleDetails, String saleTotal) 
                        throws ClassNotFoundException, SQLException {

     Statement myStatement = getConnection();
     String sql = "INSERT INTO Sale (SaleDetails, SaleTotal) VALUES ('"+saleDetails+"','"+saleTotal+"')";

     myStatement.executeUpdate(sql);
     closeConnection();
  } 
}

错误:

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(JdbcOdbc.java:3109) 在sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:337) 在sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(JdbcOdbcStatement.java:287)

这是 ms-access 的设计 View :

enter image description here

最佳答案

执行System.out.println(sql);或使用您的日志框架并直接在 Access 中尝试该语句。您可能会遇到 odbc 上不同数据类型的问题。否则,该声明对我来说看起来不错。

也许您的变量包含 ' 和/或逗号。如果不进行转义,这也可能会导致问题。您应该考虑使用参数绑定(bind)。

关于java - ms access 中查询值和目标字段的数量不相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13326367/

相关文章:

sql - 使用GROUP BY选择多个(非聚合函数)列

ms-access - Access VBA。如何使用一个按钮执行多个按钮?

java - 如何使用 Servlet 的依赖项?

java - 从 SQL 到 HTML UL 的树状结构

java - 在将人名从小写转换为大写或反之亦然的程序中,我的小写 if 不起作用

mysql - 在 MySQL 中使用序列号和空格对重复值进行分组

SQLite:获取日期之间的所有日期

c# - 通过 OleDbDataAdapter.Update 将任意值插入 AutoNumber 字段

java - 错误org.grails.orm.hibernate.cfg.HibernateMappingBuilder-ORM映射无效等

java - 如何避免 "Possible unsafe assignment to a non-final static field in a constructor"(AssignmentToNonFinalStatic)