你设断点跟进去,把输出的SQL语句,拿到数据库中去查询一下,看数据库报错否!

解决方案 »

  1.   

    你先不进行查询,你在页面中out.println(sql);看一下是不是你是查询的字符串。
    可能在页面传值的时间有编码问题,也就是说存在中文乱码。
    如果是乱码你可以这样解决:
    String str = new String(str.getBytes("ISO8895_1"),"GB2312");
      

  2.   

    if(NYH==null && DMH==null && SLH==null){
           Sql="select * from p_yc";//如果三项都为空,显示全部数据
    }else{
          Sql="select * from p_yc where NYH like '%"+nyh+"%' or DMH like '%"+dmh+"%' or SLH like '%"+slh+"%'";//nyh,dmh,slh为从输入页面传回的查询数据,语句的作用是进行联合查询
    } 怎么会这样写??
    年月号,代码号,受理号这三个条件排列组合一下,你算算写多少if else,而你现在写了几个?
      

  3.   

    同意 didoleo(冷月无声) 
    你的if条件写得有问题,在else中,可能存在三项中有两项为空的情况,那么你那个sql语句就有问题;
    if(NYH!=null && DMH!=null && SLH!=null){
     Sql="select * from p_yc where NYH like '%"+nyh+"%' or DMH like '%"+dmh+"%' or SLH like '%"+slh+"%'";//nyh,dmh,slh为从输入页面传回的查询数据,语句的作用是进行联合查询      }else{
         Sql="select * from p_yc";//如果三项有一项为空,显示全部数据
         }