com.microsoft.sqlserver.jdbc.SQLServerException: 结果集没有当前行

参考博客com.microsoft.sqlserver.jdbc.SQLServerException:
结果集没有当前行

java获取结果集,if(rs!=null),和while(rs.next())区别 

  1. com.microsoft.sqlserver.jdbc.SQLServerException: 结果集没有当前行。
  2. st = conn.createStatement();
  3. ResultSet rs = st.executeQuery(sql);
  4. if(rs!=null) {//rs.next(); 
    报错
  5. System.out.println(rs.getRow());
  6. System.out.println(rs.getString("name"));
  7. }
  8. st = conn.createStatement();
  9. ResultSet rs = st.executeQuery(sql);
  10. while(rs.next()) {//rs.next(); 
    OK
  11. System.out.println(rs.getRow());
  12. System.out.println(rs.getString("name"));
  13. }

原因:结果集rs的位置初始时位于第一条记录的前面,即为0。所以当用if来判断时,会出现结果集当前行为空。

这是ResultSet指向的问题,ResultSet取值后,指针默认指向index为-1的前一个元素,

即ResultSet中第一个元素的前面,这时指针默认指向是不存在元素的,因此出现错误。必须调用.next()函数才能,对ResultSet进行遍历。

时间: 2024-08-05 15:28:46

com.microsoft.sqlserver.jdbc.SQLServerException: 结果集没有当前行的相关文章

com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败。 java.net.ConnectException: Connection refused: connect

问题描述:最简单的数据库连接报错,到主机  的 TCP/IP 连接失败.(win 7 操作系统) 错误信息: com.microsoft.sqlserver.jdbc.SQLServerException: 到主机  的 TCP/IP 连接失败. java.net.ConnectException: Connection refused: connect package sqlconnect; import java.sql.*; public class sqlconnect { public

com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。

com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败. at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:196) at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:246) at com.micr

atitit.故障排除------有时会错误com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset by peer: soc

atitit.故障排除------有时会错误com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset by peer: socket write error 1. 现象::::有时会错误,大概20% 会中间... 1 2. 原因::原因:::sql server的bug 或者限制,查询的时候儿使用资源太多超过操作系统/防火墙/安全软件的限制.. 1 3. 解决方案:::retry3机制 1 4. 参考 1 1. 现象:::

[Exception JavaWeb 1] - Cause: com.microsoft.sqlserver.jdbc.SQLServerException: '@P2' 附近有语法错误。

严重: Servlet.service() for servlet [springMVC] in context with path [/ExceptionManageSystem] threw exception [Request processing failed; nested exception is org.springframework.jdbc.UncategorizedSQLException: ### Error querying database. Cause: com.mi

com.microsoft.sqlserver.jdbc.SQLServerException: 对象名 'xxxxx' 无效

一般这种问题就是由于大家在.hbm.xml定义的数据库表名和数据库的关键字冲突了,导致产生这样的错误.但我今天遇到了下面的错误,看着像是那个问题,不过我整了好久并不是关键字冲突问题,由于是手工配置,在配置时将正确的 hibernate.hbm2ddl.auto=update误写成了hibernate.hbm2ddl=update导致下边的错误,好几个小时就在痛苦中度过了.. Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 对

Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 不支持“variant”数据类型。

mybatis执行sqlserver的sql报错 com.microsoft.sqlserver.jdbc.SQLServerException: 不支持"variant"数据类型. at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190) ~[sqljdbc4-4.0.jar:na] at com.microsoft.sqlserver.jdb

SQL Server 报错:com.microsoft.sqlserver.jdbc.SQLServerException: The "variant" data type is not supported.

查询 SQL SERVER 中某张表结构,sql 语句如下: SELECT tb.name AS tableName, col.name AS columnName, col.max_length AS length, col.is_nullable AS isNullable, t.name AS type, ( SELECT TOP 1 ind.is_primary_key FROM sys.index_columns ic LEFT JOIN sys.indexes ind ON ic.o

### Error updating database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 必须声明标量变量 "@[email protected]"。(sql少一个逗号)【??】

(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,[??],?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)### Error updating database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 必须声明标量变量 "@[email protected]".### The erro

Caused by com microsoft sqlserver jdbc SQLServerException

1.错误描述 org.springframework.dao.TransientDataAccessResourceException: PreparedStatementCallback; SQL []; 索引 1 超出范围.; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 索引 1 超出范围. at org.springframework.jdbc.support.SQLStateSQLExcepti