以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]SQLGetComboListString提取值的求助 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=69669) |
-- 作者:huangfanzi -- 发布时间:2015/6/9 9:48:00 -- [求助]SQLGetComboListString提取值的求助 假定后台角色表的结构与内容如下: 角色名 姓名 A角色 姓名A,姓名B B角色 姓名A,姓名C,姓名D 现在要提取角色A的姓名做个SQLGetComboListString,我目前只会写如下代码: DataTables("角色表").SQLGetComboListString("姓名","[角色名] = \'A角色\'") 由于SQLGetComboListString的分隔是用“|”,我上面的代码应该如何改,谢谢!
|
-- 作者:大红袍 -- 发布时间:2015/6/9 9:49:00 --
[此贴子已经被作者于2015/6/9 9:49:56编辑过]
|
-- 作者:大红袍 -- 发布时间:2015/6/9 9:51:00 -- DataTables("角色表").SQLGetComboListString("姓名","[角色名] = \'A角色\'").Replace(",", "|") |
-- 作者:huangfanzi -- 发布时间:2015/6/9 9:55:00 -- 上面的写法看懂了,但还有一种情况按上面的写法会提取到重复值,这种情况是: DataTables("角色表").SQLGetComboListString("姓名","[角色名] = \'A角色\'" or "[角色名] = \'B角色\'").Replace(",", "|") 另外请问下,SQL中的 or 是不是像我上面这样用的。
[此贴子已经被作者于2015/6/9 9:57:45编辑过]
|
-- 作者:Bin -- 发布时间:2015/6/9 10:00:00 -- 这代码也不应该出现重复值啊. 另外你条件搞错了 标点符号不对 DataTables("角色表").SQLGetComboListString("姓名","[角色名] = \'A角色\' or [角色名] = \'B角色\'").Replace(",", "|")
|
-- 作者:huangfanzi -- 发布时间:2015/6/9 10:06:00 -- 由于A角色中存在用户A,B角色中也存在用户A,执行完SQLGetComboListString后的结果是:姓名A,姓名B | 姓名A,姓名C,姓名D,再通过Replace(",", "|")成为 姓名A|姓名B|姓名A|姓名C|姓名D,是不是会这样,请赐教! |
-- 作者:大红袍 -- 发布时间:2015/6/9 10:07:00 -- Dim str As String = "|" For Each xms As String In DataTables("角色表").GetValues("姓名", "角色名 = \'A\' or 角色名 = \'B\'") Dim ary() As String = xms.Split(",") For Each xm As String In xms If str.Contains("|" & xm & "|") = False Then str &= xm & "|" End If Next Next msgbox(str.Trim("|")) |
-- 作者:Bin -- 发布时间:2015/6/9 10:29:00 -- Dim str As String = "|" For Each xms As String In DataTables("角色表").SQLGetValues("姓名", "角色名 = \'A\' or 角色名 = \'B\'") For Each xm As String In xms.Split(",") If str.Contains("|" & xm & "|") = False Then str &= xm & "|" End If Next Next msgbox(str.Trim("|"))
|