当我使用ResultSet中的getString方法时,我一直收到此错误。我使用第一种方法的返回ResultSet作为第二种方法。相关守则:
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";
}
在解决此问题时,非常感谢任何帮助。
答案 0 :(得分:3)
看看这段代码:
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?
}
答案 1 :(得分:3)
在你的声明之后有一个分号。
while(rs.next());