这里我附上了我的代码,它显示了如下错误: 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/