以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]角色匹配问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=132936) |
-- 作者:martin723 -- 发布时间:2019/4/2 16:27:00 -- [求助]角色匹配问题 在系统用户表里面用户对应的角色可以有多个,例如:user1的角色有role1,role2,role3 自己做了个一个权限表,每张表也对应有个角色字段, sheet1的角色有role2,role4 sheet2对应的角色有role3,role5 sheet3对应角色role4 怎么能将权限表中用户 user1对应的sheet1,sheet2筛选出来 用户表字段 Name,config,角色可以从cofig里面提取 权限表字段 TableName,role
[此贴子已经被作者于2019/4/2 16:30:36编辑过]
|
-- 作者:有点甜 -- 发布时间:2019/4/2 16:34:00 -- 合成这样的条件,如
"第一列 like \'%role1%\' or 第一列 like \'%role2%\' or 第一列 like \'%role3%\'"
也就是把user1循环合成,如
for each s as string in user.roles.split(",") |
-- 作者:martin723 -- 发布时间:2019/4/2 16:57:00 -- 谢谢啦!但这样还有个问题,比如有角色aaa,aa, 如果用户有aa这个角色,表a有aaa这个角色 用户登录的时候,表a也会显示
[此贴子已经被作者于2019/4/2 17:17:57编辑过]
|
-- 作者:有点甜 -- 发布时间:2019/4/2 17:42:00 -- 合成这样的条件,如
" \',\' + 第一列 + \',\' like \'%,role1,%\' or \',\' + 第一列 + \',\' like \'%,role2,%\' or \',\' + 第一列 + \',\' like \'%,role3,%\'" |
-- 作者:martin723 -- 发布时间:2019/4/2 17:47:00 -- Dim dtb As New DataTableBuilder("用户临时表") dtb.AddDef("name", Gettype(String), 32) dtb.Build() Dim dr As DataRow For Each sr As String In user.Roles.Split(",") DataTables("用户临时表").AddNew dr("name") = sr Next 这段代码有什么问题?
|
-- 作者:martin723 -- 发布时间:2019/4/2 17:56:00 -- 太难了,没看懂,能直接给个完整的sql语句看看吗? |
-- 作者:有点甜 -- 发布时间:2019/4/2 17:59:00 -- 以下是引用martin723在2019/4/2 17:56:00的发言:
太难了,没看懂,能直接给个完整的sql语句看看吗?
Dim roles = "A,AA,bb" |
-- 作者:martin723 -- 发布时间:2019/4/3 8:21:00 -- 第一列前面后面都加上一个逗号是什么意思?没看太懂,正常不是 第一列 like \'%,A,%\' or 第一列 like \'%,AA,%\' or 第一列 like \'%,bb,%\' 这样吗: 另外如果加上逗号判断的话,角色前后两个,前面的前面少个逗号,后面的后面少个逗号,会不会落下两个角色
[此贴子已经被作者于2019/4/3 8:27:09编辑过]
|
-- 作者:有点甜 -- 发布时间:2019/4/3 8:44:00 -- 认认真真看,照抄代码即可。在【第一列】前后加入逗号以后,再比较筛选
Dim roles = "A,AA,bb" |