执行准备好的语句时出现以下错误。我对我的数据库使用 ms-access
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 10.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6956)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7113)
at sun.jdbc.odbc.JdbcOdbc.SQLExecute(JdbcOdbc.java:3148)
.....
这是我准备好的声明
addUserSt = con.prepareStatement("insert into Accounts(Username, First_name, last_name, gender, birthday, email, civil_status, password, role, date_join) values(?,?,?,?,CDATE(?),?,?,?,?, sysdate)");
这就是我执行准备好的语句的方式......这里的变量都是字符串
dc.addUserSt.setString(1, uname);
dc.addUserSt.setString(2, fname);
dc.addUserSt.setString(3, lname);
dc.addUserSt.setString(4, gender);
dc.addUserSt.setString(5, bday);
dc.addUserSt.setString(6, email);
dc.addUserSt.setString(7, civil);
dc.addUserSt.setString(8, pass);
dc.addUserSt.setString(9, role);
我不明白为什么我得到参数太少的错误,我认为我 setString 很好地准备了语句。当我删除 sysdate 并删除列中的 date_join 时,程序运行完美。但我需要获取当前日期以存储在数据库中。任何帮助将不胜感激 :)