我试图在下面执行此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绑定。