以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] GetUniqueValues 取值出错!是bug吗?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=687)

--  作者:gdlgh
--  发布时间:2008/9/24 13:55:00
--  [求助] GetUniqueValues 取值出错!是bug吗?
仓库名称  存放位置(字符型)
a        01
b      01
c      0101
d      0102
e      010201
f      010202
g      0103
h      010101

参考帮助的示例代码做的(其它代码省了):

 DataTables("库存").GetUniqueValues("存放位置 Like \'01??\'", "仓库名称")--无值返回

 DataTables("库存").GetUniqueValues("存放位置 Like \'01##\'", "仓库名称")--也无值返回

 DataTables("库存").GetUniqueValues("存放位置 Like \'01*\'", "仓库名称")--有值返回

 DataTables("库存").GetUniqueValues("存放位置 Like \'0101\'", "仓库名称")--有值返回

DataTables("库存").GetUniqueValues("存放位置 Like \'0102\'", "仓库名称")--有值返回

---------------

 DataTables("库存").GetUniqueValues("存放位置 Like \'01??01\'", "仓库名称")--无值返回

 DataTables("库存").GetUniqueValues("存放位置 Like \'01##01\'", "仓库名称")--也无值返回

 DataTables("库存").GetUniqueValues("存放位置 Like \'010201\'", "仓库名称")--有值返回


? 任何单个字符
* 零或多个字符
# 任何单个数字(0 到 9)

是bug吗??

呵。用SQL可以返回值!!

  Dim cmd As New SQLCommand
  Dim dt As DataTable
  cmd.C
  cmd.CommandText = "Select * From [库存] where 存放位置 like \'01__01\' "
  dt = cmd.ExecuteReader() \'生成统计表
  For Each dr As Datarow In dt.Datarows
    Output.Show(dr("仓库名称"))
  Next
[此贴子已经被作者于2008-9-24 14:30:10编辑过]

--  作者:狐狸爸爸
--  发布时间:2008/9/24 15:22:00
--  
你这里是一个表达式,不是代码中的like运算符。

表达式中的like运算符,请参考帮助文件“使用指南  - 表达式 - 运算符”。

呵呵,这个问题还是不存在。

所以我说:有时不一定就是软件的问题。
--  作者:gdlgh
--  发布时间:2008/9/24 15:26:00
--  

这也就说GetUniqueValues不能用like运算符!但用*可返回值呀???


--  作者:狐狸爸爸
--  发布时间:2008/9/24 15:28:00
--  
以下是引用gdlgh在2008-9-24 15:26:00的发言:

这也就说GetUniqueValues不能用like运算符!但用*可返回值呀???


可以用
不过请参考帮助文件“使用指南  - 表达式 - 运算符”,这里头的有表达式的like运算符语法说明。
GetUniqueValues的第一个参数是一个条件表达式,不是代码,你应该参考表达式的运算符说明。

[此贴子已经被作者于2008-9-24 15:28:57编辑过]

--  作者:gdlgh
--  发布时间:2008/9/24 15:41:00
--  

呵。惭愧呀!帮助无点睇,就是用到就复制。


--  作者:gdlgh
--  发布时间:2008/9/24 16:10:00
--  

呵。。看了帮助,like也太简单了!只是开头和结尾!!若按上面的要求也不行了!!
也就是可用但不支持!


在 LIKE 比较中,* 作为通配符,表示任意个数的字符,通配符只能在开头或者结尾出现。例如:

[姓名] LIKE \'*赫*\'

[姓名] LIKE \'赫*\'

[姓名] LIKE \'*赫\'

分别表示姓名中包括“赫”,姓名开头是“赫”(姓赫),姓名结尾是“赫”

在字符串的中间不允许使用通配符。例如,不允许 \'赫*丰\'