2012-05-25 30 views
0

我在这里有一个问题,我想要做的是从表中获取当前日期和列。这是我的代码到目前为止:getdate()通过resultset查询引发没有当前行异常

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的帖子。谢谢

回答

3

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

+0

哦是的抱歉,我的错误..我忘了打电话给resultset.next。这总是发生。可怜的我。谢谢@christopher – bangandi

0

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

+0

是的,我的错误@redgreasel。谢谢... – bangandi

0

遍历结果集像这个

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

的数据,因为结果集的初始位置始终即在第一条记录的开始第一个记录之前,该resultSet.next()使你的结果设置为指向第一条记录。