String sql =  "select * from dc_user where 1=1  and name = 'admin' and password = '123'";
rs = stmt.executeQuery(sql);
这样在程序中查,查不出东西来,结果集为空
但是直接在数据库里select * from dc_user where 1=1  and name = 'admin' and password = '123';  却能查出数据 
这是为什么? 
用的是oracle

解决方案 »

  1.   

    如果连上数据库,即使0条记录,返回的rs也不会等于null的
    先确定你的Connection能够正确取到
      

  2.   

    这个没什么异常:连接db正常;rs = stmt.executeQuery(sql);正常;
    然后对查出的rs 进行迭代处理while(rs.next()){...}的时候,发现while里面的东西根本不执行
    就这么滴 - -
      

  3.   

    1、确认一下你程序连接的库和在分析器里执行sql用的库是不是相同
    2、rs = stmt.executeQuery(sql);跟踪这一句确认执行时stmt是否为null
    3、换sql查询别的表的数据
      

  4.   

    while(rs.next()){...}
    while不执行,你跟踪一下看看rs是不是为空呢?或者就是你的while写的不对
    rs.next()是指向找到的下一条数据
      

  5.   

    stmt不为null  其他表也是同样情况
      

  6.   

    while(rs.next()){
    System.out.println("bbbbbbbbbbbbb");
    System.out.println(rs.getString("name"));
    }
    这个不执行
      

  7.   

    你可以在while开始前打印一下rs.next(),然后在while里面再打印一次,先定位你的错误在什么地方。
    System.out.println("rs.next()===>"+rs.next());
    while(rs.next()){
    System.out.println("111");
    }
      

  8.   

    把下面一句可以先去掉,确认while循环没有问题
    System.out.println(rs.getString("name"));
    或者换成System.out.println(rs.getString(0));
      

  9.   

    是sql语句的问题:
    /* sql语句这样写,什么都查不出 */
    String sql =  "select * from dc_user where 1=1  and name = 'admin' and password = '123'";
    rs = stmt.executeQuery(sql);
    while(rs.next()){
       System.out.println(rs.getString("name"));
    }/* sql语句这样写,可以查出 */
    String sql =  "select * from dc_user where 1=1 ";
    rs = stmt.executeQuery(sql);
    while(rs.next()){
       System.out.println(rs.getString("name"));
    }大家帮我看看sql语句哪不对?
    dc_user里有2条数据:
    id  name  password
    --  ----  --------
    1   admin  123
    2   dudu   123
    用的oracle
    谢谢!
      

  10.   

    啊  搞定了!  "select * from dc_user where 1=1  and name = 'admin' and password = '123'
    在“1=1”和“and name=”之间有两个空格~  我删了一个空格 就好了
    - - !
    是不是条件之间不能乱加空格啊?
    你们遇到过吗?
      

  11.   

    同意
    -----------------
     yesjoy(卫卫) ( ) 信誉:74    Blog   加为好友  2007-04-20 17:21:39  得分: 0  
     
     
       应该是不允许非法空格,可能两个空格中有一个是中文字符下的空格。
    你可以多加几个空格测试一下,应该没有问题的
      
     
    ----------------
      

  12.   

    可以有连续空格~估计楼主是加入了中文输入下的空格了~另外,stmt.executeQuery(sql)的返回值永远不会是null~
    因此不能作为调试程序的依据