ResultSet rs = state.executeQuery(sql);
//   state.executeQuery(sql);//这里多了一行,去掉!

解决方案 »

  1.   

    你注意一下,你不应该把
    rs.close();放在if(rs!=null){}
    里面
      

  2.   

    import java.io.*;
    import java.sql.*;
    这些包在哪里啊?
      

  3.   


    String dbUrl = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=article.mdb";
     Connection con = DriverManager.getConnection(dbUrl,"",""); 
    还是:
     Connection con = DriverManager.getConnection(article,"","");//article注册了ODBC数据源上面都可以,哪一种写法好点呢?各位大哥
      

  4.   

    j2sdk中就有这些包啊这两种写法看你自己的爱好了第一种可以不需要注册odbc源,但要求直接定位到mdb文件第二种,你只需注册了odbc源,成功了,而不需要直接定位mdb文件
      

  5.   

    注释着一行!
    state.executeQuery(sql);
      

  6.   

    ResultSet rs = state.executeQuery(sql);
    //   state.executeQuery(sql);       while( rs.next() ){
              System.out.println("\t" + rs.getString(1));
      }
          rs.close();
          con.close();
    如此写法肯定可以。
      

  7.   

    ResultSet rs = state.executeQuery(sql);
    state.executeQuery(sql);对呀,同一操作要两次干嘛。
    rs.close();con.close();没错,当然是不用了才是方资源
      

  8.   

    import java.io.*;
    import java.sql.*;
    这些包在哪里啊?这些包确实已经包含在jdk中拉,你用jcreator直接编译已经就可以啦你要仔细阅读下载得程序,其实executeQuery执行俩次也没有关系,就是资源浪费一点就是啦,rs.close();and con.close();当然最好别忘记啦,不然io是非常占用资源得哦!