代码有问题1,rs变量没有定义2,rs变量没有移动指针(rs.next())

解决方案 »

  1.   

    我把代码改成如下,但只显示一行记录,请问如何解决:
    import java.awt.*;
    import java.awt.event.*;
    import java.sql.*;
    import java.util.*;
    import javax.swing.*;
    import javax.swing.table.*;public class ResultSetTable
    {  public static void main(String[] args)
       {  JFrame frame = new ResultSetFrame();
          frame.show();
       }
    }class ResultSetFrame extends JFrame
    {  public ResultSetFrame()
       {  setTitle("ResultSet");
          setSize(300, 200);
          
          try
          {      
           Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
             String url = "jdbc:odbc:phdbms";
           String user = "sa";
           String password = "";
         
           con = DriverManager.getConnection(url, user,password);
             stmt = con.createStatement();   
             rs = stmt.executeQuery("SELECT * FROM superAdmin");
             rsmd = rs.getMetaData();
             int colCount = rsmd.getColumnCount(); 
            
             while (rs.next())
             {
             Vector rows = new Vector();
      Vector columns = new Vector();
      
      for(int i=1;i<=colCount;++i)
      {
       rows.addElement(rs.getString(i));
      }
              
               JTable table = new JTable(columns,rows);
             Container contentPane = getContentPane();
             scrollPane = new JScrollPane(table);
             contentPane.add(scrollPane,"Center");
          }
            rs.close();
          }
          catch(Exception e)
          {
           System.out.println("Errror " + e);
          }
       }   private JScrollPane scrollPane;
       private ResultSet rs;
       private Connection con;
       private Statement stmt;
       private ResultSetMetaData rsmd;
    }
      

  2.   

    在加上下面这句试试
    getContentPane().setLayout(new BorderLayout())另外,这部分有错误while (rs.next())
             {
             Vector rows = new Vector();
    ....=========rows应该在while循环外面定义。table等变量定义也应该放在while循环外面
      

  3.   

    to  joy_wind(wind)小弟改成如下,能显示了,但全都在一行显示,不能换行?   
    Vector rows = new Vector();
    Vector columns = new Vector();
    while (rs.next())
    {
      for(int i=1;i<=colCount;++i)
      {
         rows.addElement(rs.getString(i));
      }
      JTable table = new JTable(columns,rows);
      Container contentPane = getContentPane();
      scrollPane = new JScrollPane(table);
      getContentPane().setLayout(new BorderLayout());
      contentPane.add(scrollPane,"Center");
    }
      

  4.   

    to  joy_wind(wind)小弟改成如下,能显示了,但全都在一行显示,不能换行?   
    Vector rows = new Vector();
    Vector columns = new Vector();
    while (rs.next())
    {
      for(int i=1;i<=colCount;++i)
      {
         rows.addElement(rs.getString(i));
      }
    }
      JTable table = new JTable(columns,rows);
      Container contentPane = getContentPane();
      scrollPane = new JScrollPane(table);
      getContentPane().setLayout(new BorderLayout());
      contentPane.add(scrollPane,"Center");
      

  5.   

    代码里有逻辑错误,再检查!你需要认真看一本关于java语法的书,thinking in java(英文版)是个不错的选择。
      

  6.   

    谢谢 joy_wind(wind) 的指点,由于单位需要急用,
    没办法,只有硬着头皮做下来:
    这个问题已经折腾了我一个多礼拜,
    现在又找了一些资料,终于实现了以上的功能.
    Java是一门不错的语言,我会好好去学她的.