Java UcanaccessSQLException:如何从结果集获取值?

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" +

我想从我的查询中得到结果。我使用next()=true获得结果集。但是,当我执行getString()时,会出现以下错误:“不正确的游标状态:指示的游标未定位在UPDATE、DELETE、SET或get语句的行中:;查询结果的当前位置在最后一条记录之后”

我的查询返回1行结果

我的代码是:

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()
将使结果集位于最后一条记录之后。