Java UcanaccessSQLException:如何从结果集获取值?
我想从我的查询中得到结果。我使用next()=true获得结果集。但是,当我执行getString()时,会出现以下错误:“不正确的游标状态:指示的游标未定位在UPDATE、DELETE、SET或get语句的行中:;查询结果的当前位置在最后一条记录之后” 我的查询返回1行结果 我的代码是:Java UcanaccessSQLException:如何从结果集获取值?,java,ms-access,jdbc,resultset,ucanaccess,Java,Ms Access,Jdbc,Resultset,Ucanaccess,我想从我的查询中得到结果。我使用next()=true获得结果集。但是,当我执行getString()时,会出现以下错误:“不正确的游标状态:指示的游标未定位在UPDATE、DELETE、SET或get语句的行中:;查询结果的当前位置在最后一条记录之后” 我的查询返回1行结果 我的代码是: ResultSet rs = ejecutarSentencia("SELECT ITEM " + "FROM STORE" +
ResultSet rs = ejecutarSentencia("SELECT ITEM "
+ "FROM STORE"
+ "WHERE REF = '"+ref+"';");
if (rs.next()) {
String item = rs.getString(rs.findColumn("ITEM"));
}
错误消息是:
“net.ucanaccess.jdbc.UcanaccessSQLException:UCAExc:::4.0.4错误的游标状态:指示的游标未定位在UPDATE、DELETE、SET或GET语句的行中:;查询结果的当前位置在最后一条记录之后”
当我执行该行时:
String item = rs.getString(rs.findColumn("ITEM"));
这就是我在网上阅读后所做的。连接前,确保初始化驱动程序
try
{
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
}
catch(ClassNotFoundException cnfex)
{
System.out.println("Problem in loading or "
+ "registering MS Access JDBC driver");
cnfex.printStackTrace();
}
然后还要确保执行查询
public String[] YourFonction(String anyParameters)
{
String[] infoToreturn = new String[3];
String info1;
String info2;
String info3;
Statement st;
final String ACCESS_SELECT = "SELECT x,y,z FROM yourTable WHERE something = '" + anyParameters + "'";
try
{
st = conn.createStatement();
ResultSet rs = st.executeQuery(ACCESS_SELECT);
while (rs.next())
{
info1 = rs.getString(1);
info2 = rs.getString(2);
info3 = rs.getString(3);
}
}
catch (SQLException e)
{
e.printStackTrace();
}
infoToreturn[0] = info1;
infoToreturn[1] = info2;
infoToreturn[2] = info3;
return infoToreturn;
}
希望能有帮助。
参考地点:
注:
- 上面的代码还没有被编译或测试,发布更多是为了展示概念,而不是作为直接解决方案进行复制和粘贴
rs。返回true
的next()
将使结果集位于最后一条记录之后。