我试图在下面执行此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的设计视图:

最佳答案

执行System.out.println(sql);或使用您的日志记录框架,然后直接在访问权限内尝试该语句。您可能会对odbc上的不同数据类型有疑问。否则,该声明对我来说看起来不错。

也许您的变量包含'和/或逗号。如果不逃避,那也可能导致问题。您应该考虑使用paramenter绑定。

09-10 09:38