java.sql.SQLException:无效的游标状态-无当前行
当我使用ResultSet中的getString方法时,我一直遇到这个错误。我将第一个方法的返回结果集用于第二个方法。相关代码:java.sql.SQLException:无效的游标状态-无当前行,java,sql,derby,embedded-database,Java,Sql,Derby,Embedded Database,当我使用ResultSet中的getString方法时,我一直遇到这个错误。我将第一个方法的返回结果集用于第二个方法。相关代码: public ResultSet getStudentRS(){ try{ studentRS = s.executeQuery("SELECT * FROM Students " + "WHERE StudentID=210569906"); } catch(SQLException error
public ResultSet getStudentRS(){
try{
studentRS = s.executeQuery("SELECT * FROM Students "
+ "WHERE StudentID=210569906");
}
catch(SQLException error){
System.err.println("Unable to query for getStudentRS.");
error.printStackTrace(System.err);
System.exit(0);
}
return studentRS;
}
public String getUserName(){
try{
while(rs.next())
return rs.getString(1) + " " + rs.getString(2); // Exception Here
}
catch(SQLException error){
System.err.println("Unable to query for getUserName.");
error.printStackTrace(System.err);
System.exit(0);
}
return "Failure";
}
非常感谢您在解决此问题时提供的任何帮助。请查看以下代码:
while(rs.next());
return rs.getString(1) + " " + rs.getString(2);
您正在循环浏览所有数据,直到将光标移离最后一行。。。然后试图获取数据。鉴于您的缩进,我怀疑您不打算在while循环结束时使用分号-这就是为什么使用大括号以及让IDE格式化代码总是很好的原因。。。这让这类事情变得显而易见。即使没有分号,我也不认为这是最好的表达方式
我想你想要:
if (rs.next())
{
return rs.getString(1) + " " + rs.getString(2);
}
else
{
// What do you want to do if there are no results?
}
while语句后面有一个分号
while(rs.next());
是的,if实际上是我想要的方式,但是我做了一些改变,所以我想分号就是这样出现的。谢谢你的帮助。