有可能stmt在别处已经用了,而现在使用之前没有close

解决方案 »

  1.   

    首先看看你的数据库里事不是只有以行数据。
    你的方法应该是正确的,在就是看看你的SQL语句有没有问题,在别的数据库客户端运行一下看看结果。
      

  2.   

    错误原因在:
    myvector.addElement(query.getString(i));
    System.out.println(myvector.get(i-1)); //i总是在0-x之间,所以取得就是第一行的数据!
      

  3.   

    有close,而且不知以行数据啊。
    大各门帮我看看vector用的对吗!
    小弟我被这个问题折磨了一天了。郁闷啊!
      

  4.   

    按你原来的这种模式,最好改为:
    Statement stmt =con.createStatement();
            try{            
                ResultSet query=stmt.executeQuery(sqlStr);
                ResultSetMetaData data=query.getMetaData();
                int x=data.getColumnCount();
                int j = 0;
                System.out.println("查询成功");
                while(query.next())
                {                
                    System.out.println(query.getString(1));                
                    for(int i=1;i<x;++i)
                    {
                        myvector.addElement(query.getString(i));
                        System.out.println(myvector.get(++j));                    
                    }
                }
      

  5.   

    我想数据应该在vector里了吧,只要在循环外执行System.out.println(myvector.get(i-1)); 就行了吗?
      

  6.   

    数据的确已经在vector里了,只是你取出来显示的方法不对。
      

  7.   

    for(int i=1;i<x;++i)
                   {
                     myvector.addElement(query.getString(i));
                     System.out.println(myvector.get(i-1));
                   
                   }
    应该是这里的for循环问题造成