【发布时间】:2012-11-10 21:44:22
【问题描述】:
我正在尝试执行下面的这个 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 Driver] 查询值和目标字段的数量不同。 在 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 的设计视图:
【问题讨论】:
-
您可能在 salesDetails 变量中有报价或其他内容。考虑使用准备好的语句。除了避免这种错误,它们更安全。