问题:代码如下:import java.sql.*;public class textODBC{ /** * @param args * @throws ClassNotFoundException */ public static void main(String[] args) { try { Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); } catch (ClassNotFoundException e) { e.printStackTrace(); } try{ String url=jdbc:odbc:text; String uid=sa; String pwd=; Connection conn=DriverManager.getConnection(url,uid,pwd); Statement stmt=conn.createStatement(); ResultSet rs=(ResultSet) stmt.executeQuery(select * from employees); while(rs.next()); { System.out.println(rs.getString(lastName)++rs.getString(FirstName)); } } catch(SQLException e) { e.printStackTrace(); } } }但是调试的时候老是出现:java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 无效的游标状态 at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source) at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source) at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(Unknown Source) at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(Unknown Source) at sun.jdbc.odbc.JdbcOdbcResultSet.getString(Unknown Source) at sun.jdbc.odbc.JdbcOdbcResultSet.getString(Unknown Source) at textODBC.main(textODBC.java:25)
原因就在于 你在while(rs.next()); 后面多有一个分号 导致,你的游标把所有的数据都遍历完以后,才执行下面这句 { System.out.println(rs.getString("lastName")+""+rs.getString("FirstName")); } 这时候游标已经遍历完了,游标已经无效,再去读取结果的时候,就会出 游标无效的错误。 如果你对代码如下:import java.sql.*;public class textODBC{ /** * @param args * @throws ClassNotFoundException */ public static void main(String[] args) { try { Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); } catch (ClassNotFoundException e) { e.printStackTrace(); } try{ String url=jdbc:odbc:text; String uid=sa; String pwd=; Connection conn=DriverManager.getConnection(url,uid,pwd); Statement stmt=conn.createStatement(); ResultSet rs=(ResultSet) stmt.executeQuery(select * from employees); while(rs.next()); { System.out.println(rs.getString(lastName)++rs.getString(FirstName)); } } catch(SQLException e) { e.printStackTrace(); } } }但是调试的时候老是出现:java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 无效的游标状态 at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source) at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source) at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(Unknown Source) at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(Unknown Source) at sun.jdbc.odbc.JdbcOdbcResultSet.getString(Unknown Source) at sun.jdbc.odbc.JdbcOdbcResultSet.getString(Unknown Source) at textODBC.main(textODBC.java:25)这个问题有好的意见或
建议,请留言
|