CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  GUI 设计

为什么无法在表格中显示出数据库中的数据?

楼主zhongzuo(花生)2006-03-07 23:18:22 在 Java / GUI 设计 提问

源代码:  
  import   java.awt.*;  
  import   java.awt.event.*;  
  import   javax.swing.*;  
  import   javax.swing.event.*;  
  import   java.sql.*;  
  import   javax.swing.table.*;  
   
  public   class   TableTest  
   
  {  
  static{  
  try{  
                  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");  
  System.out.println("Success   loading   MS   SQL   SERVER   Driver...");  
   
  }  
        catch(Exception   e){  
          System.out.println("Error   loading   MS   Server   Driver...");  
          e.printStackTrace();  
           
  }  
  }  
  public   static   void   main(String[]   args)  
  {  
   
   
  JFrame.setDefaultLookAndFeelDecorated(true);  
  JFrame   frame   =   new   TableTestFrame();  
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
   
  frame.show();  
   
  }  
  }  
   
    class   TableTestFrame   extends   JFrame  
  {  
  public   TableTestFrame()  
  {  
  setTitle("商品信息查询窗口");  
  Toolkit   kit   =   Toolkit.getDefaultToolkit();  
                  Dimension   screenSize   =   kit.getScreenSize();  
                  int   screenWidth   =   screenSize.width;  
                  int   screenHeight   =   screenSize.height;  
   
  setLocation(screenWidth/4,screenHeight/10);  
  setSize(DEFAULT_WIDTH,DEFAUTL_HEIGHT);  
  try{  
  dataInit();  
  }  
  catch(Exception   e)  
  {  
  e.printStackTrace();  
  }  
  Container   contentPane   =   getContentPane();  
   
  JPanel   panel   =   new   JPanel();  
  JLabel   label   =   new   JLabel("请输入商品标号:");  
  JTextField   text   =   new   JTextField("",8);  
  JButton   query   =   new   JButton("查询");  
  JButton   exit   =   new   JButton("退出");  
  exit.addActionListener(new   ActionListener()  
  {  
  public   void   actionPerformed(ActionEvent   event)  
  {  
  System.exit(0);  
  }  
  });  
   
  panel.add(label);  
  panel.add(text);  
  panel.add(query);  
  panel.add(exit);  
   
  contentPane.setLayout(new   BorderLayout());  
  contentPane.add(panel,BorderLayout.NORTH);  
   
  table   =   new   JTable();  
  JScrollPane   jScrollPanel   =   new   JScrollPane(table);  
  contentPane.add(jScrollPanel,BorderLayout.CENTER);  
   
  }  
   
  public   static   final   int   DEFAULT_WIDTH   =   500;  
  public   static   final   int   DEFAUTL_HEIGHT   =   600;  
  private   JTable   table;  
          private   DefaultTableModel   defaultTableModel1   =   new   DefaultTableModel();  
  private   void   dataInit()   throws   Exception{  
   
  try{  
  DBConnection   DBCon   =   new    
  DBConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=mydb1"  
  ,"sa","sa");  
   
  Connection   con   =   DBCon.makeConnection();  
  Statement   stmt1   =   con.createStatement();  
  ResultSet   rs1   =   stmt1.executeQuery("select   *   from   commodityv_id");  
  ResultSetMetaData   rsmd1   =   rs1.getMetaData();  
  defaultTableModel1.setColumnCount(0);  
  defaultTableModel1.setRowCount(0);  
  for(int   i   =1;i<=rsmd1.getColumnCount();i++){  
  defaultTableModel1.addColumn(rsmd1.getColumnName(i));  
  }  
   
  int   i   =   0;  
  while(rs1.next()){  
  defaultTableModel1.setNumRows(i+1);  
  for(int   j   =   0;j<=rsmd1.getColumnCount();j++){  
  defaultTableModel1.setValueAt(rs1.getString(j+1),i,j);  
   
  }  
  i++;  
   
   
  }  
  rs1.close();  
  table.setModel((TableModel)defaultTableModel1);  
  }  
  catch(Exception   e){  
  e.printStackTrace();  
  }  
   
   
   
  }  
   
   
   
   
  }  
   
    class   DBConnection   {  
  public   String   url;  
  public   String   username;  
  public   String   password;  
  public   DBConnection(){  
  }  
  public   DBConnection(String   url_,String   username_,String   password_){  
  url   =   url_;  
  username   =   username_;  
  password   =   password_;  
   
  }  
  public   Connection   makeConnection(){  
  Connection   con   =   null;  
  try{  
  con   =   DriverManager.getConnection(url,username,password);  
   
  }  
  catch(Exception   e){  
  System.out.println("没有连接上数据库!");  
   
  e.printStackTrace();  
  }  
  return   con;  
  }  
   
  }  
  运行界面能正常显示,但是无法显示数据库中的数据,终端显示:  
  Success   loading   MS   SQL   SERVER   Driver...  
  java.sql.SQLException:   [Microsoft][SQLServer   2000   Driver   for   JDBC]Column   index   5  
    is   out   of   range.  
                  at   com.microsoft.jdbc.base.BaseExceptions.createException(Unknown   Source  
  )  
                  at   com.microsoft.jdbc.base.BaseExceptions.getException(Unknown   Source)  
                  at   com.microsoft.jdbc.base.BaseResultSet.validateColumnIndex(Unknown   Sou  
  rce)  
                  at   com.microsoft.jdbc.base.BaseResultSet.getString(Unknown   Source)  
                  at   TableTestFrame.dataInit(TableTest.java:109)  
                  at   TableTestFrame.<init>(TableTest.java:49)  
                  at   TableTest.main(TableTest.java:28)  
  请明白人解答   谢谢! 问题点数:20、回复次数:2Top

1 楼zhongzuo(花生)回复于 2006-03-07 23:19:57 得分 0

其中有些功能没有实现     只是想先试一下能不能从数据库中调出数据,结果。。。Top

2 楼lipinxin(Parson)回复于 2006-03-10 23:14:40 得分 20

应该是在这里发生了错误:  
  for(int   j   =   0;j<=rsmd1.getColumnCount();j++){  
  defaultTableModel1.setValueAt(rs1.getString(j+1),i,j);  
  }  
   
  rs1.getString(j+1)越界了。  
   
  你的循环语句用的不对,应该为:for(int   j   =   0;j<rsmd1.getColumnCount();j++)。  
  Top

相关问题

  • 数据库表格输出
  • 在PB7中为何无法打开后台数据库中的表格
  • 无法更新数据库?
  • 无法删除数据库!
  • 数据库无法附加
  • 数据库无法写入
  • 无法访问数据库
  • 用表格显示数据库信息??
  • 怎么打印数据库的表格!
  • 连接数据库后使用表格

关键词

  • swing
  • tabletest
  • tabletestframe
  • screensize
  • jframe
  • frame
  • javax
  • import

得分解答快速导航

  • 帖主:zhongzuo
  • lipinxin

相关链接

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

广告也精彩

反馈

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