準備されたステートメントを実行すると、次のエラーが発生します。データベースに 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 も削除すると、プログラムは完全に実行されます。しかし、データベースに保存する現在の日付を取得する必要があります。どんな助けでも大歓迎です:)