查询数据库 public ArrayList inqueryBouquet(String strBouquetid,String strBouquetname)
 {
  ArrayList noticeList = new ArrayList();
  
  try{
   conn = ConnectionDB.getConnection();
   stmt = conn.createStatement(); 
   
   String sql = "select T_BOUQUET_ID,T_BOUQUET_NAME  from TBBOUQUET  where T_BOUQUET_ID = '%"+strBouquetid+"%' or T_BOUQUET_NAME = '%"+strBouquetname+"%'";
   
   System.out.println("this is =============>" + sql);
   System.out.println("connect to db is successful~~~");
   rs = stmt.executeQuery(sql);  
   
   
   while(rs.next()){
    
NoticeBouquet temp = new NoticeBouquet(); 
    temp.setBouquetid(rs.getString("T_BOUQUET_ID"));
    temp.setBouquetname(rs.getString("T_BOUQUET_NAME"));
    noticeList.add(temp);
    
   }
   return noticeList;   }
  catch(SQLException e)
  {
   e.printStackTrace();
   return null;
  }
 }
处理 上面函数的返回值的函数   private function inqueryResultBouquet(result:Object):void
{
 if(result.length==0)
{
Alert.show("This is a new ID or Name!","message");
}else{
       M_List_Bouquet.dataProvider =null;
       M_List_Bouquet.dataProvider = result;
        nCount = M_List_Bouquet.dataProvider.length;
      }

}    模糊查询 不到结果    SQL语句  应该没有错误吧    高手帮忙看看  是哪里出错目前 不能模糊查询

解决方案 »

  1.   

    都说
        String sql = "select T_BOUQUET_ID,T_BOUQUET_NAME  from TBBOUQUET  where T_BOUQUET_ID = '%"+strBouquetid+"%' or T_BOUQUET_NAME = '%"+strBouquetname+"%'"; 这个sql  这么写没问题啊   可是为什么查询不到结果呢
      

  2.   

    模糊查询 =? 不是like吗
      

  3.   

    改成   like  也是有问题啊  郁闷
      

  4.   

    是 like 关键字。
    把表结构晒下出来吧
      

  5.   

     "SQL语句  应该没有错误吧 "
    有没有错你把sql语句复制到数据库中查查看不就知道了,这样就知道究竟是sql语句的错还是程序的错
      

  6.   

    create table TBBOUQUET
    (
      T_BOUQUET_ID  VARCHAR2(20).
      T_BOUQUET_NAME VARCHAR2(128)
    )
      

  7.   

    1.换成like2.直接在查询器中执行看看有没有数据3.建议不使用or,宁愿用union,你这样写,如果数据量大 ,效率太低
      

  8.   

    目前   情况是这样的       有两个输入框    我想实现的是    输入 ID 或者NAME   都可以查
    现在出现的是  只输入ID不行   必须  ID和NAME 一起输入  才可以查出来    我sql语句用的是  or 啊  为什么实现的是and呢
      

  9.   

    那肯定是有问题的,模糊查找肯定要用到like关键字的。
    _BOUQUET_ID = '%"+strBouquetid+"%' or T_BOUQUET_NAME = '%"+strBouquetname+"%'"; 

    应该是
    BOUQUET_ID like '%"+strBouquetid+"%' or T_BOUQUET_NAME like '%"+strBouquetname+"%'"; 
      

  10.   

    7楼的 可以帮忙改下 看看嘛  用  union  咋实现啊   我是菜鸟不是很懂
      

  11.   

    String sql = "select T_BOUQUET_ID,T_BOUQUET_NAME  from TBBOUQUET  where T_BOUQUET_ID like concat(%,'"+strBouquetid+"',%) or T_BOUQUET_NAME  like concat(%,'"+strBouquetname+"',%)";
      

  12.   

    还是不行啊     我语句里 用的是  or   为什么  实现的是  and      填入任意一个都可以查  现在实现的是  必须 ID和name  都得填写 才可以
      

  13.   


    楼主是不是在执行这个sql之前先判断一下,if(name!= null && !name.equals("")){
        就把name作为一个检索条件
    }ID也同样。。
      

  14.   


    StringBuffer buffer = new StringBuffer();
    buffer.append("select T_BOUQUET_ID,T_BOUQUET_NAME  from TBBOUQUET where ");
    if(name!= null && !name.equals("")){
        buffer.append("T_BOUQUET_NAME like '%"+ strBouquetname+ "%' ");
    }
    if(id!= null && !id.equals("")){
        buffer.append("and T_BOUQUET_ID like '%"+ strBouquetid+ "%'");
    }
    String sql = buffer.toString()
    思路就这样的,至于这两个检索条件是不是必须至少输入一个,还是都可以不输进行全查询。你自己按照你的需求用js控制一下,或者在修改下sql就可以了。
      

  15.   

      那个  name  和 id  咋定义的 这段可以写在  那个查询函数里吗   
      

  16.   

    我这个是   java 查询完  传给 flex做显示的  
      

  17.   

    name 就是 strBouquetname
    id 就是 strBouquetid是你页面传过来的。
      

  18.   

    T_BOUQUET_ID这字段是int吗?怎么能这么写
      

  19.   

    上面朋友写的   单输入name能查询    单输入ID还是不行啊
      

  20.   

       StringBuffer buffer = new StringBuffer();
       buffer.append("select T_BOUQUET_ID,T_BOUQUET_NAME  from TBBOUQUET where ");
       if(strBouquetname!= null && !strBouquetname.equals("")){
           buffer.append("T_BOUQUET_NAME like '%"+ strBouquetname+ "%' ");
       }
       if(strBouquetid!= null && !strBouquetid.equals("")){
           buffer.append("and T_BOUQUET_ID like '%"+ strBouquetid+ "%'");
       }
       String sql = buffer.toString();这个 可以 实现   单独 输入   Name的查询   单独输入 ID  还是不行
      

  21.   

    strBouquetname!= null && !strBouquetname.equals("")能帮我结实一下这句吗  谢谢