我正在尝试在下面执行此sql insert语句,但遇到下面列出的错误。非常感谢一些建议,谢谢。
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 Driver]查询值和目标字段的数量不同。 at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6956) at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7113) at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3109) at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:337) at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(JdbcOdbcStatement.java:287)
以下是ms-access的设计视图:
答案 0 :(得分:1)
执行System.out.println(sql);
或使用您的日志框架并直接在访问中尝试该语句。您可能在odbc上遇到不同数据类型的问题。否则声明对我来说很好。
也许您的变量包含'
和/或逗号。如果不进行转义,这可能会导致问题。您应该考虑使用参数输入绑定。
答案 1 :(得分:0)
我认为你的插入应该是:
String sql = "INSERT INTO Sale (SaleDetails, SaleTotal) VALUES (" + saleDetails + ", " + saleTotal + ")";
此外,您可能需要在执行插入操作之前将saleTotal从字符串转换为数字。
答案 2 :(得分:0)
这是因为逗号是系统上的小数分隔符。 value1是2.5,value2是3.2,但你有2,5,3,2(你希望2.5,3.2)