編程過程中發現這樣的問題:ResultSet rs, 當執行好查詢之後操作比如 rs.getInt(1),會發生異常:
com.microsoft.sqlserver.jdbc.SQLServerException: ResultSet 沒有當前行。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.verifyOnValidRow(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getterGetColumn(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getInt(Unknown Source)
在這行之前添加了rs.next()操作就可以了,查詢了一下文檔才知道了原因。
java.sql
Interface ResultSet
boolean |
next() Moves the cursor down one row from its current position |
Method Detail |
next
public boolean next() throws SQLException
- Moves the cursor down one row from its current position. A
ResultSet
cursor is initially positioned before the first row; the first call to the methodnext
makes the first row the current row; the second call makes the second row the current row, and so on.If an input stream is open for the current row, a call to the method
next
will implicitly close it. AResultSet
object's warning chain is cleared when a new row is read. - Returns:
true
if the new current row is valid;false
if there are no more rows- Throws:
SQLException
- if a database access error occurs