直接执行你得SQL看看有没有记录

解决方案 »

  1.   

    首先你的第二条语句比第一条语句多了一个判断条件。
    yfjg='是' 会不会是,你的数据库根本就没有满足条件的记录呀。请查证先!---------------------
    如果还有问题,说清:
    应该显示多少数据。实际显示了多少数据。你的数据库表的定义贴出来!
      

  2.   

    就是多了 yfjg='是' 所以不能查出来 。换成 yfjg='否'也查不出来数据库里面绝对有这一项,而且满足此条件的记录不止一条,把这直接在sql中执行能查出来。我是楼主。我觉得问题是不是在这呢,将 yfjg='是'  传入excute()这个方法后,中文就变成乱码了,所以就查不出来,有没有这种可能呢?哪位大哥有过这种经历啊,怎么改呢?????
      

  3.   

    数据库里面我定义的都是varchar 型 ,我觉得这应该没什么问题,因为直接执行这些SQL语句都能查到十多条记录的,也就是说 返回的qydm 正常情况下一定有值。。
      

  4.   

    正如上面所说,是变成乱码的缘故!你可以这样改:譬如:当你从数据库中取出一个数据项,如:number=rs.getString(1);
    可通过一个字符编码的函数来解决!就是把请求通过iso-8859-1来编码,
    byte b[]=number.getBytes("ISO-8859-1");
    number=new String(b);
      

  5.   

    不是读不出来的问题,我读出来的都是数字记录项。我觉得是写不进中文进这个excute(),所以查询不出来,没有结果。public ResultSet excute(String sqlsel)throws Exception
    {
    Statement stmt=con.createStatement();
    ResultSet rst=stmt.executeQuery(sqlsel);

    return rst;

    }你想,当sql中 yfjg='是' 写入excute()后变成了 yfjg='?' 那样肯定在数据库中查不出来,怎么改呢????
      

  6.   

    各位大哥都没有这种经历吗??不是读不出来,只要不加 yfjg='是' 或者 什么什么列='是'或'否'  ,就都能查出来 
    急啊,谢谢各位大哥了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      

  7.   

    把你的if(rs.next())找成while(rs.next())
      

  8.   

    值为  “是”或“否”  的那些列在表中 我定义的全是 varchar,这应该没什么问题吧?还有哪儿的数据类型可能不对?
      

  9.   

    换成 while(rs.next())  同样加上 yfjg='是' 或者 什么什么列='是'或'否' 也一条记录也显示不出来。。疯了,难道真人品? ?????????????
      

  10.   

    在传入数据库执行前,得到的SQL语句已经能得到中文了,就像我在第一楼写的那样。。数据库是否打开时候的编码和你在网页中用的中文编码一致?是什么意思?
    我觉得也不大可能阿,因为我对数据库不仅仅只有这个查询的操作,我能向数据库中通过insert插入中文写入数据库的啊,为什么就是查不出来呢???
      

  11.   

    查之前已经转了啊,得到的那条sql语句也是正确的阿?
      

  12.   

    你用第二个SQL语句时,数据库可能只有一条记录,
    这时使用if(rs.next()){}游标指到第二条记录,所以页面取不到值
      

  13.   

    不应该是少一条记录的问题,你说的那个我遇到过。我现在的问题不是少一条的问题,而是一条也没有。直接在MYSQl里查的时候,有很多条记录的。。
      

  14.   

    zcfzl和gjze在数据库里是什么类型的?是varchar类型的吗?
      

  15.   

    zcfzl和gjze这两个都是double型的,好像没什么问题吧
      

  16.   

    你可也试试用unicode编码转换一下来查询。“是”这个字的编码我忘了。你可以到网上查查看。我没试过,只是有这个想法