java.sql.SQLException: Column not found Error?
Bin ich Abfragen einer Microsoft Access-Datenbank mit dem code unten. Die Datenbank-Feldnamen sind richtig angegeben, die in der SELECT-Anweisung. Versucht herauszufinden, warum ich immer diese Fehlermeldung. Brauche Hilfe..danke
public Item getIteminfo(String itemCode) throws ClassNotFoundException, SQLException {
Statement myStatement = getConnection();
Item item = null;
String itemDescription;
int itemPrice;
String sql = "SELECT ItemDescription, ItemPrice FROM itemCatalog WHERE ItemCode = '"+itemCode+"'";
ResultSet results = myStatement.executeQuery(sql);
while (results.next()){
itemDescription = results.getString("ItemDescription");
itemPrice = results.getInt("ItemPrice");
item = new Item(itemDescription, itemPrice);
}
closeConnection();
return item;
}
Hier ist die Fehlermeldung:
java.sql.SQLException: Column not found
at sun.jdbc.odbc.JdbcOdbcResultSet.findColumn(JdbcOdbcResultSet.java:1849)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:410)
at checkoutsimulation.DAO.getIteminfo(DAO.java:52)
at checkoutsimulation.ItemCatalog.getItemdetails(ItemCatalog.java:61)
at checkoutsimulation.CheckoutSystem.bnPurchaseActionPerformed(CheckoutSystem.java:463)
at checkoutsimulation.CheckoutSystem.access$100(CheckoutSystem.java:20)
Bearbeitet werden: Die Felder sind identisch, hier ein screen shot
- können Sie prüfen, ob der Fall mit Spaltennamen in der Datenbank ist genau so, wie Sie angeben?
- yup..die Felder sind identisch, siehe Screenshot
- Hast du Debug und sehen Wetter zu keinem Ergebnis kommen wird ? oder ist das ResultSet leer ist ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich keinen Zugriff habe, mich so kann ich nicht versuchen, aber hier ist etwas, das könnte funktionieren. Zuerst drucken wir die Namen der Spalten in der Ergebnismenge, für den Fall eines groß-und Kleinschreibung bei der Arbeit.
Dann machen wir einen workaround int das Ergebnis.next-Schleife mit positions-Argumente (1, 2, ..) anstelle von Namen. Dies sollte, damit es funktioniert, unabhängig davon, was die Namen sind.
Sobald Sie herausfinden, was ist der name, problem, ersetzen Sie die 1, 2 etc mit dem richtigen Namen.