我在做一个简单的聊天系统,其中,在申请号码时,我想通过把表中的num都返回,出现这种错误,请求帮助,这是为什么,数据库用的是Access,在注册存入数据时一切正常,用的工具是netbeans代码
 Statement  stmt = null;
        try {
            stmt = con.createStatement();
        } catch (SQLException ex) {
           ex.printStackTrace();
        }
        ResultSet st = null;
        try {
            st = stmt.executeQuery("Select num from number where password!=''");
        } catch (SQLException ex) {
            ex.printStackTrace();        }
        try {
            jTextFieldnum.setText(st.getString(1));
        } catch (SQLException ex) {        }
        try {
            st.close();
        } catch (SQLException ex) {
           ex.printStackTrace();
        }
        try {
            stmt.close();
        } catch (SQLException ex) {
          ex.printStackTrace();
        }
                                

解决方案 »

  1.   

    给你几个建议:
    一:找找access的驱动jar包,或者配置ODBC链接。
    二:楼上有说,你的表达不清楚。
    三:不是netbeans代码,netbeans只是一个IDE,请你理解下代码和工具的区别
    四:语文知识有待加强!
      

  2.   

    (1)number是不是Access的关键字,我没用过
    (2)不等于空,是不是用!=‘’表示,你再好好看看,没用过
    (3)如果是取出全部的num,那加条件干什么?
    菜鸟飘过~!
      

  3.   

    number是Access中的表名,其中num和password是列名,
    就是像QQ你注册成功后,随机分配号码,号码分配后相应的密码也有了,所以在取num时要取出没有密码的num也就是没有被分配出去的
    应该不是驱动jar包的事吧,在像数据库中保存注册信息时,一切正常啊
      

  4.   

     Select num from number where password!=''
    这儿?
      

  5.   

      st = stmt.executeQuery("Select num from number where password!=''"); 
      

  6.   

    LZ的错误,我也不知道为什么会发生,但是为什么一句话一个try-catch块呢?都写在一个里就可以了吧
      

  7.   

    在网上看到一个因表名是table的也出现这种错误,我就把表名改了,结果没错误了,难道number也是Access的
    但是又出现这种问题了,希望大家可以给看下,返回值是sun.jdbc.odbc.JdbcOdbcResultSet@f4a24a,不知为什么 try {
                Statement stmt = null;
                LinkedList list = new LinkedList();
                stmt = con.createStatement();
                ResultSet st = null;
                st = stmt.executeQuery("Select num from usernum ");
                while (st.next()) {
                    list.add(st);
                    jTextFieldnum.setText((String) list.getFirst().toString());
                }
                st.close();
                stmt.close();
            } catch (SQLException ex) {
               ex.printStackTrace();
            }
            
        }                              
      

  8.   

    list.add(st);
    这里有问题吧?
      

  9.   

    应该是 jTextFieldnum.setText((String) list.getFirst().toString());
    无法转化类型,
    有没有种更好的方法,将数据库中的num取出啊?
      

  10.   

    应该是list.add(st.getString("num"));
      

  11.   

      if (st.next()) {
                    String num = new String(st.getBytes(1), "gb2312");                this.jTextFieldnum.setText(num);
                }
    改成这样就OK了,但是不知道为什么,原来的代码会出错误
      

  12.   

    为什么结果是sun.jdbc.odbc.JdbcOdbcResultSet@f4a24a
    问题是这段代码list.add(st);
    jTextFieldnum.setText((String) list.getFirst().toString());分开写明白点list.add(st);
    ResultSet rs = list.getFirst();
    String str = rs.toString();
    jTextFieldnum.setText((String)str);这样楼主应该知道,为什么会出现sun.jdbc.odbc.JdbcOdbcResultSet@f4a24a