Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java com.microsoft.sqlserver.jdbc.SQLServerException:结果集没有当前行_Java_Sql_Jdbc - Fatal编程技术网

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

Java com.microsoft.sqlserver.jdbc.SQLServerException:结果集没有当前行,java,sql,jdbc,Java,Sql,Jdbc,我正在尝试获取结果集第一行的第一列。我知道我可以更改SQL查询来实现这一点。但是没有。我想要满满的桌子,我只想做我刚才提到的事情 注意-Winners是我的sql查询中的别名列。 误差基本上是- com.microsoft.sqlserver.jdbc.SQLServerException: The result set has no current row. 更多错误- at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromD

我正在尝试获取结果集第一行的第一列。我知道我可以更改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();
}

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

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

是的,这很奇怪。我的结果集中怎么可能什么都没有?我在数据库中执行了相同的查询,并得到了结果。但java失败了:(可能您没有指向同一个数据库或架构,或者您没有提交用于插入行的事务。我在SQL server上运行了与我的ResultSet使用的相同的查询。它工作正常。不知道为什么在Java中不起作用。提交不是问题,DB加载了行。我只需要读取DB,而不需要写入DB。我使用了CachedRowSetImpl以及令人恼火的结果集。现在,它工作了。这完全坏了…我的结果集中有一些东西,但只能在我将
rs.beforeFirst();rs.next();
放在
rs.getSomething();
前面时使用它。知道为什么会发生这种情况以及如何修复它吗?