楼主,第一段有问题啊,                    List pars=new ArrayList();            StringBuilder sql=new StringBuilder()
            .append("select s.studentid,s.studentname,s.schoolid,s.classid,case [fenke] when '0' then '公共科' when '1' then '理科' when '2' then '文科' end as fenke,s.gradeid,s.py")
            .append("  from studentinfotbl s")
            .append(" where 1=1 ")
            ;
            
            if(studentid!=null && !studentid.equals(""))
            {
                sql.append(" and s.studentid like ?");
                //pars.add("%"+studentid.trim()+"%");这里根本不是这样的,它得到的就是studentid.trim(),你应该在你的程序当中加上%才行,就跟你的下一段一样.ok?要么你就用sql.append(" and s.studentid like %?%");
  不信你就用断点调试一下,你就会看到这里没有%出现,其实相当简单的一个问题,呵呵,其他的没有多看,希望楼主见谅,因为一看就是这里有问题.我经常做这中查询条件,呵呵,

            }
            if(schoolid!=null && !schoolid.equals(""))
            {
                sql.append(" and s.schoolid like ?");
                //pars.add("%"+schoolid.trim()+"%");
            }这样用list对象,同时输入2个查询条件就会报错
-------------------------------------------------------------------
改成这样就没问题了,不知道是为什么,大家解答一下                        if(studentid!=null && !studentid.equals(""))
            {
                sql.append(" and s.studentid like '"+"%"+studentid.trim()+"%"+"'");
                //pars.add("%"+studentid.trim()+"%");
            }
            if(schoolid!=null && !schoolid.equals(""))
            {
                sql.append(" and s.schoolid like '"+"%"+schoolid.trim()+"%"+"'");
                //pars.add("%"+schoolid.trim()+"%");

解决方案 »

  1.   

    楼主看看我上面写的吧,呵呵
    颜色没有调出来,呵呵,

    pars.add("%"+studentid.trim()+"%");这里根本不是这样的,它得到的就是studentid.trim(),你应该在你的程序当中加上%才行,就跟你的下一段一样.ok?要么你就用sql.append(" and s.studentid like %?%");
      不信你就用断点调试一下,你就会看到这里没有%出现,其实相当简单的一个问题,呵呵,其他的没有多看,希望楼主见谅,因为一看就是这里有问题.我经常做这中查询条件,呵呵,
      

  2.   

    sql.append(" and s.studentid like %?%"); 
    还可以这样写啊,又学了一招不过我的意思是list对象是不是有啥不好用的地方