以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 同样的条件,为什么在table和datalist中执行效果不一样? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=3794)
|
-- 作者:reachtone
-- 发布时间:2009/8/3 13:46:00
-- 同样的条件,为什么在table和datalist中执行效果不一样?
有个条件表达式为:规格 like \'*16*8*\',目的是筛选规格包含16*8的所有记录。 在table中,把Filter设置为这个条件,可以正常执行; 但在datalist中,把RowFilter设置为这个条件,就执行出错。什么原因呢?怎样解决?
此主题相关图片如下:snap1.jpg
[此贴子已经被作者于2009-8-3 13:57:09编辑过]
|
-- 作者:kylin
-- 发布时间:2009/8/3 14:20:00
--
分成2个Like,用and连接
|
-- 作者:reachtone
-- 发布时间:2009/8/3 14:50:00
--
以下是引用kylin在2009-8-3 14:20:00的发言: 分成2个Like,用and连接
这是个办法。但这样一改的话,查询结果就不精确了:本来是要查询包含16*8的记录,现在变成只要包含16和8这两个数字就都符合条件了,外延明显扩大。 不知还有没有更好的办法?关键就是字符间的那个*号。
|
-- 作者:yangming
-- 发布时间:2009/8/3 14:57:00
--
Dim dst As WinForm.DataList = e.Form.Controls("DataList1") Dim txt As
String
txt = "\'*" & 16*8 & "*\'" dst.RowFilter = "规格 Like " & txt 这样试试
|
-- 作者:roy78
-- 发布时间:2009/8/3 15:09:00
--
引号太多,把人都搞晕了。
|
-- 作者:reachtone
-- 发布时间:2009/8/3 15:10:00
--
以下是引用yangming在2009-8-3 14:57:00的发言: Dim dst As WinForm.DataList = e.Form.Controls("DataList1") Dim txt As
String
txt = "\'*" & 16*8 & "*\'" dst.RowFilter = "规格 Like " & txt 这样试试
呵呵,这样肯定不对。查询条件变成\'*128*\'了。 16*8是一种字符查询条件。
|
-- 作者:HLJ
-- 发布时间:2009/8/3 15:29:00
--
1.長治久安:規範數據格式,儘量避免含有:通配符(*),单引号(\')等特殊符號! 2.偷龍換鳳:Replace → Filter → Replace
|
-- 作者:yangming
-- 发布时间:2009/8/3 15:36:00
--
以下是引用HLJ在2009-8-3 15:29:00的发言: 1.長治久安:規範數據格式,儘量避免含有:通配符(*),单引号(\')等特殊符號! 2.偷龍換鳳:Replace → Filter → Replace
对,主要是星号惹的祸,改成16x8.就没事了 Dim txt As String = e.Form.Controls("TextBox1").Value Dim dst As WinForm.DataList = e.Form.Controls("DataList1") txt = "\'*" & txt & "*\'" dst.RowFilter = "第三列 Like " & txt
|
-- 作者:yangming
-- 发布时间:2009/8/3 15:41:00
--
如果非要显示星号,可以加一个辅助列,RowFilter时用辅助列
|
-- 作者:狐狸爸爸
-- 发布时间:2009/8/3 16:14:00
--
新版本将统一
|