import java.sql.*;public class sqljdbc {
  public static void main(String[] ares) {
    try {
      Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
      String sourceURL =
          "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=csdn0710";
      Connection databaseConnection = DriverManager.getConnection(sourceURL,
          "sa", "sa");
      System.out.println("Connection established successfully!");
      Statement stmt = databaseConnection.createStatement();
      ResultSet rs = stmt.executeQuery("select * from employee");
      ResultSetMetaData rsm = rs.getMetaData();
      int columnCount = rsm.getColumnCount();
      while (rs.next())
      {
      for (int i = 0; i < columnCount; i++) 
      {
        {
          System.out.print(rs.getString(i+1)+",");
        }
      }
      System.out.println();
      }      databaseConnection.close();
    }
    catch (ClassNotFoundException cnfe) {
      System.err.println(cnfe);
    }
    catch (SQLException sqle) {
      System.err.println(sqle);
    }
  }
}

解决方案 »

  1.   

    循环写得有问题,这样!
    以索引来得到值,索引以1开头!
    循环从0到1两次!
    for (int i = 0; i < columnCount; i++) 
          {
            {
              System.out.print(rs.getString(i+1)+",");
            }
          }
      

  2.   

    luckyfanjian(luckyfan) 正确
      

  3.   

    对,循环应该改为:
    for (int i = 1; i < =columnCount; i++)
      

  4.   

    如果知道具体的栏位可以用:
    System.out.println(rs.getString(i));
    改成
    System.out.println(rs.getString(0));//或者直接用名称代替
    System.out.println(rs.getString(1));
      

  5.   

    应该这样写:while (rs.next())
    {
    System.out.println(rs.getString("name"));
    System.out.println(rs.getInt("age"));
    }
      

  6.   


          for (int i = 1; i < columnCount; i++) {        while (rs.next()) {
              System.out.println(rs.getString(i));
            }
          }以上代码只能显示出Name column下的所有数据,可我要是显示Age column下的数据该怎么写?
      

  7.   

    to: darkway(黑道) 我写的代码,你没实验吗?
      

  8.   

    to: feiyuegaoshan(飞跃) 你写的代码,我当然实验了.但结果跟我的差不多.只能显示出Name column下的所有数据, 跟SQL的select Name from employee的结果一致.但我想显示 select * from emplyee的所有数据.既要包括Name 字段也要包括Age 字段下的所有数据的显示.
      

  9.   

    ResultSet RS = test.executeQuery("select * from say_table");
    ResultSetMetaData rsm = RS.getMetaData();
    int columnCount = rsm.getColumnCount();
    while (RS.next()) {
    for(int i=0; i<columnCount; i++){
    out.print("<h1>" + RS.getString(i+1)
    +"</h1>");
    }
    }
    RS.close();我测试了,,都正常啊  全部字段及全部数据都出来了
      

  10.   

    以上代码都是正确的.只是我的ultraedit10出了毛病.在配置Tool Configration后,编译正常,一开始执行class文件也正常,但后来就奇怪了,提示说找不到类.我将类名改成一个大写字母并且将java文件名也改成这个大写字母,编译运行都正常了.
    我以为这是ultraedit的bug,但后来找了个长名的java文件编译执行都正常.费解!!!