results是空的,当然报空指针错误。
你想取到表结构results.getMetaData();,那么results必须是个非空的结果集合。
当前你没有搜索某个表,所以无法确定操作。
参考:
     Statement stmt=con.createStatement();
     ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
     ResultSetMetaData rsmd = rs.getMetaData();
     int numberOfColumns = rsmd.getColumnCount();
     //boolean b = rsmd.isSearchable(1);

解决方案 »

  1.   

    ...        private Connection con;
           private Statement stmt;
           private  ResultSet results;
           private   ResultSetMetaData rsmd;        private void display()
            {
              try
                    {
                      stmt  = con.createStatement();
                      results = stmt.executeQuery("Select * From TableName");
                      rsmd=results.getMetaData();
                      int numCols=rsmd.getColumnCount();
                      boolean more=results.next();
                      while(more)
                            {
                                    for(int i=1;i<=numCols;i++)
                                  System.out.print(results.getString(i)+" ");
                                       System.out.println();
                                       more=results.next();
                                    }                }catch(SQLException e)
                    {
                            System.out.println("error a ");
                    }
            }
      

  2.   

    ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
         ResultSetMetaData rsmd = rs.getMetaData();
         int numberOfColumns = rsmd.getColumnCount();
         boolean b = rsmd.isSearchable(1);以上代码目的是返回该表中元数据的信息也就是列的信息~不知道你是不时这个意思
    也正如楼上说的rs是空的肯定不行~你这样就可以了~
      

  3.   

    Statement stmt=con.createStatement();
         ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
         ResultSetMetaData rsmd = rs.getMetaData();
         int numberOfColumns = rsmd.getColumnCount();
         //boolean b = rsmd.isSearchable(1);