首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

Result set type is TYPE_FORWARD_ONLY异常.

2012-01-13 
Result set type is TYPE_FORWARD_ONLY错误...不知道为什么会出这个错.packagelibraryimportjava.sql.Dri

Result set type is TYPE_FORWARD_ONLY错误...
不知道为什么会出这个错.
package   library;
import   java.sql.DriverManager;
import   java.sql.Connection;
import   java.sql.Statement;
import   java.sql.ResultSet;
import   java.sql.SQLException;
import   javax.swing.JOptionPane;
class   Data2{
        Connection   con;                   //声明对象
        Statement   s;
        public   boolean   getData()//加载驱动方法,无需参数,必须在声明Data对象之后
        {
                try{
                        Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver ");     //加载驱动语句
                }catch(ClassNotFoundException   cnfe)
                {
                        JOptionPane.showMessageDialog(null, "加载驱动出错 "+cnfe.getMessage(), "出错 ",JOptionPane.ERROR_MESSAGE);
                }
                try{
                        con=DriverManager.getConnection( "jdbc:odbc:test ");//创建连接
                        s=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);                                                   //创建执行对象
                        return   true;                                                                             //如果程序执行到这个地方则返回true表示执行成功
                }catch(SQLException   e1)
                {
                        JOptionPane.showMessageDialog(null, "创建连接或执行对象时出错 "+e1.getMessage(), "出错 ",JOptionPane.ERROR_MESSAGE);
                }
                return   false;                                                                                   //执行到这的时候说明出错了
        }
        public   ResultSet   select(String   sqlstr)
        {
                ResultSet   rs=null;
                try{
                        rs   =   s.executeQuery(sqlstr);                         //执行查询
                        return   rs;                                                                             //运行到这里时表示已经成功执行查询


                }catch(SQLException   e)
                {
                        JOptionPane.showMessageDialog(null, "执行查询语句出错! "+e.getMessage(), "出错 ",JOptionPane.ERROR_MESSAGE);
                }
                return   rs;                                                                                   //运行到这里时表示已经出错
        }
}

public   class   Untitled1   {
       
        public   static   void   main(String   []   args)
        {
                try{
                        Data2   aa   =   new   Data2();
                        aa.getData();
                        ResultSet   rs   =   aa.select( "use   library   select   *   from   BookMessage ");
                        rs.absolute(1);
                        System.out.println(rs.getString(1));
                }catch(SQLException   se)
                {
                        System.out.println(se.getMessage());
                }
        }
}

[解决办法]
Result set type is TYPE_FORWARD_ONLY

这说明你用的数据库的记录集只支持向前滚动,如果你确实需要记录集的游标向后滚动的话,那就改改数据库的配置吧。具体如何改,可以查看数据库的帮助。
[解决办法]
rs.absolute(1);
System.out.println(rs.getString(1));

游标已经到第一个了,下面只能写System.out.println(rs.getString(2));
因为定义的游标只能向前滚动

TYPE_SCROLL_INSENSITIVE代表可以向前也可以向后

热点排行
Bad Request.