hur.cn - 华软网

 热门搜索

大家给看看怎么写?

  作者:未知    来源:网络    更新时间:2018/1/1
比如数据库中有a b  c  三项,

想让用户输入 通过 sle_1  sle_2 sle_3  输入, 有没有方法实现模糊查询,就是比如输入其中两项 ,或一项,就可查询出来 ,显示在数据窗口中,这个数据窗口对象语句怎么写?

------华软网友回答------
我的思路是:
判断sle_1,sle_2,sle_3中是否有值,有值的话保存到变量中。
然后通过动态生成数据窗口对象的方式来动态显示数据。
推荐使用dw_***.getsqlselect()和dw_***.setsqlselect()
先返回当前数据窗口对象的select语句,然后通过判断sle_1到sle_3是否有值来(if语句),改变sql语句,在生成新的select语句的数据窗口对象。
模糊查询的sql语句大概如下:
select * from 表名 where 字段 like 值%
------华软网友回复------
string ls_a,ls_b,ls_c
ls_a = sle_1.text
ls_b = sle_2.text
ls_c = sle_3.text
if isnull(ls_a) or trim(ls_a) = '' then
  ls_a = '%'
else
  ls_a = '%' + ls_a + '%'
end if

if isnull(ls_b) or trim(ls_b) = '' then
  ls_b = '%'
else
  ls_b = '%' + ls_b + '%'
end if

if isnull(ls_c) or trim(ls_c) = '' then
  ls_c = '%'
else
  ls_c = '%' + ls_c + '%'
end if

dw.setfilter( "(a like '" + ls_a + "') and (b like '" + ls_b + "') and (c like '" + ls_c + "')"
dw.filter()

------华软网友回复------
这样不行,SetFilter中不能包含多个like。
一个一个like吧,即用多个SetFilter & Filter,在查询结果集中再执行下一次查询      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。