当前位置: 代码迷 >> Java相关 >> 无效的游标状态 是什么样的错误?
  详细解决方案

无效的游标状态 是什么样的错误?

热度:593   发布时间:2008-05-30 22:24:31.0
无效的游标状态 是什么样的错误?
ResultSet rsd=sql.executeQuery("SELECT * FROM event "+
" WHERE 卡号='"+jComboBox2.getSelectedItem().toString()+"' " );
double cost=0;
cost=(Double.parseDouble(rsd.getString("end1"))-Double.parseDouble(rsd.getString("start1")))/1000/60*0.017;
Statement sqll=con.createStatement();
int rss=sqll.executeUpdate("update stu set 余额=(余额-"+cost+") where 卡号='"+jComboBox2.getSelectedItem().toString()+"'"
);


上面的代码出现如下错误 不知道无效的游标状态 是什么样的错误?


java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 无效的游标状态
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3907)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5698)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:354)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:411)
搜索更多相关的解决方案: 无效的游标状态  

----------------解决方案--------------------------------------------------------
cost=(Double.parseDouble(rsd.getString("end1"))-Double.parseDouble(rsd.getString("start1")))/1000/60*0.017;
这一行出现问题了,你的Start1是不是在end1列之前?因为rs.next()这个方法是往前指的,不能往回指..
----------------解决方案--------------------------------------------------------
调用rsd.getString等取数之前要先移一位,在前面加上rsd.next()就可以了
----------------解决方案--------------------------------------------------------
  相关解决方案