[英]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.