0

我在这里有一个问题,我想做的是从表中获取当前日期和列。到目前为止,这是我的代码:

s = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
rset = s.executeQuery("select getdate() as date, tglpengiriman from orders");
java.sql.Date date = rset.getDate("date");
java.sql.Date tglkirim = rset.getDate("tglpengiriman"); 

并在上面我的代码的第 3 行中抛出异常“ResultSet 中没有当前行”。我的代码有什么问题?可能误解了 ResultSet 的用法?

感谢您的任何回答...

编辑:回答。请参阅下面@Christopher 的帖子。谢谢

4

3 回答 3

3

在调用任何 ResultSet.get* 方法之前,您需要调用 ResultSet.next。查看 Statement、ResultSet 等的文档。另外,请务必在“finally”块中关闭所有资源。

于 2012-05-25T21:05:46.100 回答
0

您需要 rset.next()在从结果集中获取数据之前调用。rset.next()检查返回的 true也是明智的。

于 2012-05-25T21:06:47.083 回答
0

迭代你的结果集数据像这样

while (resultSet.next()) {
java.sql.Date date = rset.getDate("date");
java.sql.Date tglkirim = rset.getDate("tglpengiriman"); 
}

因为结果集的初始位置总是在第一条记录之前,即在第一条记录的开头,这个 resultSet.next() 使您的结果集指向第一条记录。

于 2012-10-22T07:02:11.170 回答