以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  模糊查询没反应  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=124140)

--  作者:seal51
--  发布时间:2018/8/31 10:22:00
--  模糊查询没反应
有时候模糊查询没有反应, 怎么回事!

Dim txt As String = e.Sender.Text
Dim dt As DataTable = DataTables("产品列表")
If txt = ""
    dt.LoadFilter = ""
Else
    txt = "\'%" & txt & "%\'"
    dt.LoadFilter = "产品ID Like " & txt & " Or 缺省供应商 Like " & txt & " Or 销售产品ID Like " & txt & " Or 产品图号 Like " & txt & " Or 产品型号 Like " & txt & " Or 参考代号 Like " & txt & " Or 产品图号 Like " & txt & " Or 产品名称 Like " & txt & " Or 产品材料 Like " & txt & " Or 产品规格 Like " & txt
End If

--  作者:有点甜
--  发布时间:2018/8/31 10:30:00
--  

试试改成

 

Dim txt As String = e.Sender.Text
Dim dt As DataTable = DataTables("产品列表")
If txt = ""
    dt.LoadFilter = ""
Else
    txt = "\'%" & txt & "%\'"
    dt.LoadFilter = "产品ID Like " & txt & " Or 缺省供应商 Like " & txt & " Or 销售产品ID Like " & txt & " Or 产品图号 Like " & txt & " Or 产品型号 Like " & txt & " Or 参考代号 Like " & txt & " Or 产品图号 Like " & txt & " Or 产品名称 Like " & txt & " Or 产品材料 Like " & txt & " Or 产品规格 Like " & txt
End If
dt.loadtop = ""
dt.LoadPage = 0
dt.load

msgbox("ok")


--  作者:seal51
--  发布时间:2018/8/31 14:55:00
--  
修改了一下代码,但是查询不到任何内容
Dim txt As String = e.Sender.Text
Dim tbl As DataTable = DataTables("产品列表")
If txt = "" Then
    tbl.LoadFilter = ""
Else
    txt = "\'%" & txt & "%\'"
    tbl.LoadFilter = "产品ID Like " & txt & " Or 缺省供应商 Like " & txt & " Or 销售产品ID Like " & txt & " Or 类别 Like " & txt & " Or 品牌 Like " & txt & "  Or 产品图号 Like " & txt & " Or 产品型号 Like " & txt & " Or 参考代号 Like " & txt & " Or 产品图号 Like " & txt & " Or 产品名称 Like " & txt & " Or 产品材料 Like " & txt & " Or 产品规格 Like " & txt & " Or 外径 Like " & txt  & " Or 内径 Like " & txt & " Or 高度 Like " & txt  & " Or 产品尺寸 Like " & txt  & " Or 备注 Like " & txt
End If
tbl.loadtop = ""
tbl.LoadPage = 0
tbl.load
msgbox("ok")

还出现一个错误
.NET Framework 版本:2.0.50727.8833
Foxtable 版本:2018.8.30.1
错误所在事件:窗口,产品列表,AfterLoad
详细错误信息:
Invalid parameters for Select method.


--  作者:有点甜
--  发布时间:2018/8/31 15:28:00
--  
具体出错的实例发上来测试。
--  作者:z769036165
--  发布时间:2018/8/31 16:25:00
--  
你这是副本表吧,试试改成Dim tbl As Table = Tables("窗口_table1")
--  作者:seal51
--  发布时间:2018/8/31 17:37:00
--  
不是副本表
--  作者:seal51
--  发布时间:2018/8/31 17:38:00
--  
模糊查询有几种写法, 那种比较好呢?
--  作者:有点甜
--  发布时间:2018/8/31 17:55:00
--  
以下是引用seal51在2018/8/31 17:38:00的发言:
模糊查询有几种写法, 那种比较好呢?

 

现在还有什么问题?做一个实例发上来测试。


--  作者:seal51
--  发布时间:2018/10/11 11:00:00
--  
字段里面有百分号%, 下面的代码如何更改
Dim txt As String = e.Sender.Text
Dim dt As DataTable = DataTables("产品列表")
If txt = ""
    dt.LoadFilter = ""
Else
    txt = "\'%" & txt & "%\'"
    dt.LoadFilter = "产品ID Like " & txt & " Or 缺省供应商 Like " & txt & " Or 销售产品ID Like " & txt & " Or 产品图号 Like " & txt & " Or 产品型号 Like " & txt & " Or 参考代号 Like " & txt & " Or 产品图号 Like " & txt & " Or 产品名称 Like " & txt & " Or 产品材料 Like " & txt & " Or 产品规格 Like " & txt
End If

--  作者:有点甜
--  发布时间:2018/10/11 11:17:00
--  

txt = "\'%" & txt & "%\'"

 

改成

 

txt = "\'%" & txt.replace("%", "[%]") & "%\'"