以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  【救助】关于筛选  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=88278)

--  作者:jeavichen
--  发布时间:2016/7/30 16:05:00
--  【救助】关于筛选
没办法贴图,只 能传代码上来图片点击可在新窗口打开查看图片点击可在新窗口打开查看

Dim tj As WinForm.TextBox = e.Form.Controls("txtb_tiaojian")
Dim xx As WinForm.ComboBox = e.Form.Controls("comb_xuangxiang")
Dim JQ As WinForm.CheckBox = e.Form.Controls("CheckBox_jingque")
Dim KC As WinForm.CheckBox = e.Form.Controls("CheckBox_KC")
Dim fil As String

If e.Form.Controls("txtb_tiaojian").value IsNot Nothing Then
    If JQ.Checked = True Then
        If KC.Checked = True Then
            fil = xx.Value & " = \'" & tj.Value & "\' And 数量 > 0 "
        Else
            fil = xx.Value & " = \'" & tj.Value & " \' "
        End If
    Else
        If KC.Checked = True Then
            fil = xx.Value  & " Like \'*" & tj.Value & "*\' And 数量 > 0 "
        Else
            fil = xx.Value  & " Like \'*" & tj.Value & "*\'"
        End If
    End If
    \' MessageBox.Show(fil)

就是红色字体代码出错,求高手指教。

只要字符串中含有*号且后面还有字符,就出错,比如1100*1100


.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2012.11.29.1
错误所在事件:
详细错误信息:
System.Data.EvaluateException: Like 运算符中出错: 字符串模式“*1100*1100*”无效。
   在 System.Data.LikeNode.AnalyzePattern(String pat)
   在 System.Data.LikeNode.Eval(DataRow row, DataRowVersion version)
   在 System.Data.BinaryNode.Eval(ExpressionNode expr, DataRow row, DataRowVersion version, Int32[] recordNos)
   在 System.Data.BinaryNode.EvalBinaryOp(Int32 op, ExpressionNode left, ExpressionNode right, DataRow row, DataRowVersion version, Int32[] recordNos)
   在 System.Data.BinaryNode.Eval(DataRow row, DataRowVersion version)
   在 System.Data.Select.AcceptRecord(Int32 record)
   在 System.Data.Select.GetLinearFilteredRows(Range range)
   在 System.Data.Select.SelectRows()
   在 System.Data.DataTable.Select(String filterExpression)
   在 Foxtable.Class35.set_Filter(String value)
[此贴子已经被作者于2016/7/30 16:08:15编辑过]

--  作者:Hyphen
--  发布时间:2016/7/30 16:24:00
--  
If KC.Checked = True Then
    fil = xx.Value  & " Like \'%" & tj.Value & "%\' And 数量 > 0 "
Else
    fil = xx.Value  & " Like \'%" & tj.Value & "%\'"
End If

--  作者:jeavichen
--  发布时间:2016/8/6 11:54:00
--  
Like 运算符中出错: 字符串模式“%110*110%”无效。


NET Framework 版本:2.0.50727.5485
Foxtable 版本:2012.11.29.1
错误所在事件:
详细错误信息:
System.Data.EvaluateException: Like 运算符中出错: 字符串模式“%110*110%”无效。
   在 System.Data.LikeNode.AnalyzePattern(String pat)
   在 System.Data.LikeNode.Eval(DataRow row, DataRowVersion version)
   在 System.Data.BinaryNode.Eval(ExpressionNode expr, DataRow row, DataRowVersion version, Int32[] recordNos)



用%%也不行,不知有什么方法!还有不 知是哪出错了
[此贴子已经被作者于2016/8/6 11:59:47编辑过]

--  作者:Hyphen
--  发布时间:2016/8/6 14:21:00
--  
在什么地方用的,完整代码贴出来

用在Tables("A").Filter是没有问题的