java.sql.SQLException : Before start of result set

标签 java sql-server

这里我附上了我的代码,它显示了如下错误: java.sql.SQLException:

在结果集开始之前我在这里做错了什么:

String qry = "SELECT * From register ";



stmt = (PreparedStatement) conn.prepareStatement(qry);
rs =  stmt.executeQuery();
while (rs.next()) {
    String area = rs.getString("city");
    if(city.equals(area)){
        System.out.println("!!!!!!It matched: " + city);
        String qry2="select state from register where city='"+city+"'";
        System.out.println(qry2);
        stmt = (PreparedStatement) conn.prepareStatement(qry2);
        rs =  stmt.executeQuery();
        String state=rs.getString("state");
        System.out.println("state: " + state);
        break;
    } else {
        //System.out.println("No match with: " + area);
    }
}

最佳答案

您可以在 query1 结果集循环内为 query2 使用新的 ResultSet 对象。

String qry2="select state from register where city='"+city+"'";
System.out.println(qry2);
stmt = (PreparedStatement) conn.prepareStatement(qry2);
ResultSet rs2 =  stmt.executeQuery();
String state=rs2.getString("state");

但一般来说,最好使用 JDBC 资源来遍历结果集 1,收集返回的所有“城市”值,然后循环调用 query2 的“城市”结果来获取“州”与“城市”相关联,而不是您所展示的方式。

关于java.sql.SQLException : Before start of result set,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46102783/

相关文章:

java - 朱尼特 2.0 : Different results for same test

java - jdbi:将@MapResultAsBean 注释与 CustomMapperFactory 一起使用

c# - 用c#检查年份是否为闰年

sql - 在 MS-SQL 中更改表时, View 中的列会移位

c# - 数据库错误 : There is no row at position 0

Java Socket.io 客户端与 socket.io Passport 服务器身份验证

java - 用于 Applet 或 Android 的 Java Red5 客户端

java - gson:根据类型参数化 fromJson

sql - 组接近数字

sql - 删除每第 n 行 SQL