'select * from XXXX where order_no LIKE '#39+'%'+eorder_no.text+'%'+#39'
                      AND NAME     LIKE '#39+'%'+EAGE.TEXT+'%'+#39'
                      AND AGE      LIKE '#39+'%'+EAGE.TEXT+'%'+#39'想通过文本框过滤,进行模糊查询, 这样是可以的, 但是当数据库里的字段为空值时, 这条数据就查不到了,
 请高手解答

解决方案 »

  1.   

    AND 换成 OR 试试
    还有对应的Edit好像有错误
      

  2.   


    'select * from XXXX where order_no LIKE '+QuotedStr('%'+eorder_no.text+'%')+' AND NAME LIKE '+QuotedStr('%'+EAGE.TEXT+'%')+' AND AGE LIKE '+QuotedStr('%'+EAGE.TEXT+'%')+' or 字段名 is null'字段名,就是你说的那个为null的字段名,至于用or还是and要看你的要求
      

  3.   

    不好意思, Edit是我写错了, 我想根据所有的文本框一起来筛选, 不能用OR , 还有, 我这个实现起来没问题, 就是 当数据库字段是空值时, 查询结果为空, 个人感觉是  LIKE  '%%' 是有值的,但数据库为 ''(null),所以查询无结果,  请指教怎么解决???????
      

  4.   

    判断一下输入项,输入项不为空值时,才在SQL上加上相关查询条件。
      

  5.   

    bdmh不能用OR 字段 IS NULL , 用这个以后, 如果'字段'的值都为空,那其它字段的查询就没用了, 结果是全部显示, 如用AND , 则全部不显示 , 纠结中!!
      

  6.   

    那你就判断edit中是否有内容不就行了,如果没有,就不要加那个条件
      

  7.   

    bdmh 和Edit 没关系的, 是LIKE '%%' 查不出数据库中的空值, 无论Edit 中有无内容, 如果数据库中是空的话, 他都不会被查出,怎么办?
      

  8.   

    如果你edit中有值,那就不可能出现LIKE '%%',加入要把该字段中位null的记录也查出,那就对每一个条件都加上一个 or is null
      

  9.   

    .... where isnull(order_no, '') LIKE '+QuotedStr('%'+eorder_no.text+'%')+ ....