繁体   English   中英

java.sql.SQLException:找不到列错误?

[英]java.sql.SQLException: Column not found Error?

我使用下面的代码查询Microsoft Access数据库。 SELECT语句中正确声明了数据库字段名称。 试图找出我收到此错误的原因。 真的需要一些帮助..谢谢

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;
 }

这是错误消息:

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)

编辑:字段相同,这是一个屏幕截图 在此输入图像描述

我没有访问自己所以我不能尝试这个,但这里有可能工作的东西。 首先,我们打印出结果集中列的名称,以防在工作时出现一些区分大小写。

然后我们使用位置参数(1,2,...)代替名称在result.next循环中进行解决。 无论名称是什么,这都应该使它工作。

一旦弄清楚名称问题是什么,请用正确的名称替换1,2等。

 ResultSet results = myStatement.executeQuery(sql);

 ResultSetMetaData meta = results.getMetaData();
 for (int index = 1; index <= meta.getColumnCount(); index++)
 {
    System.out.println("Column " + index + " is named " + meta.getColumnName(index);
 }
 while (results.next()){
     itemDescription = results.getString(1);
     itemPrice = results.getInt(2);
     item = new Item(itemDescription, itemPrice);
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM