com.microsoft.sqlserver.jdbc.SQLServerException:结果集没有当前行

时间:2013-05-28 21:43:27

标签: java sql jdbc

我正在尝试获取结果集第一行中的第一列。我知道我可以改变我的SQL查询来做到这一点。但不是。我想要全桌,我只想做我刚刚提到的事情。

注意 - Winners是我的SQL查询中的别名列。

错误基本上是 -

com.microsoft.sqlserver.jdbc.SQLServerException: 
The result set has no current row.

更多错误 -

at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.verifyResultSetHasCurrentRow(SQLServerResultSet.java:483)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getterGetColumn(SQLServerResultSet.java:2047)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getValue(SQLServerResultSet.java:2082)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getValue(SQLServerResultSet.java:2067)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getString(SQLServerResultSet.java:2401) 

这是我到目前为止所尝试过的,我需要你的帮助来解决它 -

ResultSet rs = statement.executeQuery("get a whole table"); //pseudocode

try{            
    rs.next();
    numberOne = rs.getString("Winners");
    rs.first(); 
} catch (SQLException e) {
    e.printStackTrace();
}

1 个答案:

答案 0 :(得分:5)

结果集中可能没有任何内容。使用

if (rs.next()) {
    numberOne = rs.getString("Winners");
}