SQLException: [Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. Prévu 1
Je suis à la recherche d'une base de données access pour un élément de code et le retour de l'élément de l'Objet, comme indiqué dans le code ci-dessous. Tout lui expliquer pourquoi j'obtiens cette erreur sera appréciée. Grâce
public Item getIteminfo(String itemCode) throws ClassNotFoundException, SQLException {
Statement myStatement = getConnection();
Item item = null;
String itemDescription;
int itemPrice;
String sql = "SELECT * FROM itemCatalog WHERE ItemCode = '"+itemCode+"'";
ResultSet results = myStatement.executeQuery(sql);
while (results.next()){
itemDescription = results.getString("Item Description");
itemPrice = results.getInt("Item Price");
item = new Item(itemDescription, itemPrice);
}
closeConnection();
return item;
}
}
Voici les détails de l'erreur :
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
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.executeQuery(JdbcOdbcStatement.java:252)
at checkoutsimulation.DAO.getIteminfo(DAO.java:49)
at checkoutsimulation.ItemCatalog.getItemdetails(ItemCatalog.java:61)
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas complètement familier avec Java ou ODBC, mais je ne connais que les bases de données ne prennent pas de bien vouloir les noms de colonnes avec des espaces.
Essayez habillage de la colonne de noms entre crochets.
itemDescription = results.getString("[Item Description]");
J'ai aussi été confrontés à un même problème. enfin résolus
rien, s'il vous plaît vérifier le champ db nom ItemCode(OÙ ItemCode = '"+itemCode+"'")
avec votre base de données
une telle erreur se produit lorsque le champ nom de l'erreur SQL....
Dans Ce cas, vous devez utiliser
PreparedStatement
Cela peut aussi arriver si vous faites référence à un non existants sur le terrain dans la partie select de la requête.
par exemple, une requête semblable à la suivante.