CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

JTable数据库问题,高手进来帮忙看下!谢谢

楼主shuaiyuyu(帅雨雨)2006-07-01 20:18:24 在 Java / J2SE / 基础类 提问

try   {  
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  
  }   catch   (ClassNotFoundException   e){}  
   
  Connection   Ex1   =   DriverManager.getConnection("jdbc:odbc:book");  
  Statement   Ex1Stmt   =   Ex1.createStatement();  
  ResultSet   rs   =   Ex1Stmt.executeQuery("SELECT   *   FROM   dl   ");  
  ResultSetMetaData   md   =   rs.getMetaData();     //获得元数据信息  
   
  int   cols   =   md.getColumnCount();                       //获得列数  
   
  int   rows   =   3;     //获得行数  
  rs.last();  
  rows   =   rs.getRow();  
   
  String   head[]   =   new   String[cols];     //保存表头数据  
  String   data[][]   =   new   String[rows][cols];   //保存表体数据  
   
  for   (int   t   =   0;   i<cols;   t++)  
  {  
  head[t]=   md.getColumnName(t+1);               //表头数据初始化  
  }  
  rs.beforeFirst();     //移动到第一行记录前面  
  int   k=0;  
  while(rs.next())  
  {  
  for   (int   h   =   0;   h<cols;   h++)  
  {  
  data[k][h]=rs.getString(h+1);     //表体数据数组初始化  
  }  
  k++;  
   
  }  
  DefaultTableModel   dtm   =   new   DefaultTableModel(data,head);  
  JTable   table   =   new   JTable(dtm);  
  table.setBounds(0,0,300,300);  
  con.add(table);  
   
   
   
  帮忙看下哪里出问题了?我实在找不出了。错误提示是:  
  java.sql.SQLException:   Result   set   type   is   TYPE_FORWARD_ONLY  
  at   sun.jdbc.odbc.JdbcOdbcResultSet.last(Unknown   Source)  
  at   book.SystemManage.<init>(SystemManage.java:31)  
  at   book.MainPanel.actionPerformed(MainPanel.java:33)  
  at   javax.swing.AbstractButton.fireActionPerformed(Unknown   Source)  
  at   javax.swing.AbstractButton$Handler.actionPerformed(Unknown   Source)  
  at   javax.swing.DefaultButtonModel.fireActionPerformed(Unknown   Source)  
  at   javax.swing.DefaultButtonModel.setPressed(Unknown   Source)  
  at   javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown   Source)  
  at   java.awt.Component.processMouseEvent(Unknown   Source)  
  at   javax.swing.JComponent.processMouseEvent(Unknown   Source)  
  at   java.awt.Component.processEvent(Unknown   Source)  
  at   java.awt.Container.processEvent(Unknown   Source)  
  at   java.awt.Component.dispatchEventImpl(Unknown   Source)  
  at   java.awt.Container.dispatchEventImpl(Unknown   Source)  
  at   java.awt.Component.dispatchEvent(Unknown   Source)  
  at   java.awt.LightweightDispatcher.retargetMouseEvent(Unknown   Source)  
  at   java.awt.LightweightDispatcher.processMouseEvent(Unknown   Source)  
  at   java.awt.LightweightDispatcher.dispatchEvent(Unknown   Source)  
  at   java.awt.Container.dispatchEventImpl(Unknown   Source)  
  at   java.awt.Window.dispatchEventImpl(Unknown   Source)  
  at   java.awt.Component.dispatchEvent(Unknown   Source)  
  at   java.awt.EventQueue.dispatchEvent(Unknown   Source)  
  at   java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown   Source)  
  at   java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown   Source)  
  at   java.awt.EventDispatchThread.pumpEvents(Unknown   Source)  
  at   java.awt.EventDispatchThread.pumpEvents(Unknown   Source)  
  at   java.awt.EventDispatchThread.run(Unknown   Source)  
   
  说什么未知数据源   什么意思? 问题点数:0、回复次数:5Top

1 楼shuaiyuyu(帅雨雨)回复于 2006-07-01 20:20:30 得分 0

rows=3   是我自己改的   改成0还是同样错误Top

2 楼FireElement(火元素)回复于 2006-07-01 20:24:45 得分 0

可能时这句话的问题:rs.beforeFirst();  
  你的结果集可能是forward_only的,这样执行beforeFirst()方法就会出错Top

3 楼shuaiyuyu(帅雨雨)回复于 2006-07-01 20:27:15 得分 0

不会啊~结果集应该有3条记录的啊。。Top

4 楼w_t_888(绝缘材料)回复于 2006-07-01 22:27:03 得分 0

哈哈,我找到问题了。。。报错的第一行  
  java.sql.SQLException:   Result   set   type   is   TYPE_FORWARD_ONLY  
  意思是你的结果集      
  1.[   ResultSet.TYPE_FORWARD_ONLY   该常量指示指针只能向前移动的   ResultSet   对象的类型。]  
  2.[ResultSet.TYPE_SCROLL_SENSITIVE   该常量指示可滚动并且通常受其他的更改影响的   ResultSet   对象的类型。]  
  3.[ResultSet.CONCUR_UPDATABLE   该常量指示可以更新的   ResultSet   对象的并发模式。]  
  在你的程序中  
  Statement   Ex1Stmt   =   Ex1.createStatement();  
  这句话应该这麽写  
  Statement   Ex1Stmt   =   Ex1.createStateme(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);  
   
  个人感觉回答对了,大家看看吧Top

5 楼shuaiyuyu(帅雨雨)回复于 2006-07-02 08:07:34 得分 0

哈哈~谢谢    
  问题已经解决,就如楼上所说   应该用Statement   Ex1Stmt   =   Ex1.createStateme(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);  
  才可以返回一个可以滚动的结果集!Top

相关问题

关键词

得分解答快速导航

  • 帖主:shuaiyuyu

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo