Java 通过resultset进行的getdate()查询未引发当前行异常

Java 通过resultset进行的getdate()查询未引发当前行异常,java,sql-server,resultset,jtds,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.

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

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

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

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

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

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

像这样迭代结果集的数据

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

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

像这样迭代结果集的数据

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

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

哦,是的,对不起,我的错误。。我忘了调用resultset.next。这种情况经常发生。可怜的我。谢谢@Christophen Roh是的对不起,我错了。。我忘了调用resultset.next。这种情况经常发生。可怜的我。谢谢你,克里斯托弗