getdate()查询通过resultset抛出没有当前行异常

时间:2012-05-25 21:01:32

标签: java sql-server resultset jtds

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

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 个答案:

答案 0 :(得分:3)

在调用任何ResultSet.get *方法之前,需要调用ResultSet.next。看一下Statement,ResultSet等文档。另外一定要关闭'finally'块中的所有资源。

答案 1 :(得分:0)

你需要打电话 在从结果集中获取数据之前rset.next()。检查rset.next()是否返回true也是明智的。

答案 2 :(得分:0)

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

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

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