以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]关于目录树授权 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=68862) |
-- 作者:huangfanzi -- 发布时间:2015/5/26 14:57:00 -- [求助]关于目录树授权 授权窗口的AfterLoad Dim trv2 As WinForm.TreeView = e.F orm.Controls("TreeView2") Dim cmd As New SQLCommand Dim dt As DataTable cmd.C cmd.CommandText = "Select Group,name F rom {Users}" dt = cmd.ExecuteReader() trv2.BuildTree(dt,"Group|Name") trv2.ExpandAll() 上面代码是抄来的,本来没有问题,但以上代码是基于教程中的自定义用户即“一、在文件“用户.mdb”新建一个名为“Users”的表,包括Name、Group、Password三列,分别用于保存用户名、用户分组和密码。” 我现在没用这个功能,但用了教程中的“外部数据源与用户管理”,因此在SQL数据库中USER表的字段是 Name,Type,Config, 也就是说Group的信息是存在了Config中,内容举例:Group生产部PassWordEmIR5WBjrFGjO7SHZdBWwQ==Type2Role部长 上面的代码如何改能让目录树中正常显示Group,还是说没办法必须用自定义用户的方式,谢谢! |
-- 作者:大红袍 -- 发布时间:2015/5/26 15:00:00 -- 特殊符号,要特殊处理。或则改名
md.CommandText = "Select [Group],name F rom {Users}" |
-- 作者:huangfanzi -- 发布时间:2015/5/26 15:11:00 -- 不是这个问题,是字段名的问题。 |
-- 作者:大红袍 -- 发布时间:2015/5/26 15:13:00 -- 如果要截取,请可以用sql语句处理,下面的函数是用access数据库的,Sqlserver数据,请用对应的函数替换。
select Mid(config,7,InStr(Mid(config,7,len(config)-6),\' \')) as [group] f rom {表A} |
-- 作者:huangfanzi -- 发布时间:2015/5/26 15:34:00 -- SQL基本不会,所以不知如何改。 |
-- 作者:大红袍 -- 发布时间:2015/5/26 15:41:00 -- select SUBSTRING(config,7,CHARINDEX(\' \',SUBSTRING(config,7,len(config)-6))) as [group] f rom {表A} |
-- 作者:huangfanzi -- 发布时间:2015/5/26 15:44:00 -- 大红袍 非常感谢你的解答 现在的问题是你给我的代码加在我上面的代码中哪个位置。 Dim trv2 As WinForm.TreeView = e.F orm.Controls("TreeView2") Dim cmd As New SQLCommand Dim dt As DataTable cmd.Connection Name = "ShcsErpSql" cmd.CommandText = "Select Group,name F rom {Users}" dt = cmd.ExecuteReader() trv2.BuildTree(dt,"Group|Name") trv2.ExpandAll() |
-- 作者:大红袍 -- 发布时间:2015/5/26 15:47:00 -- Dim trv2 As WinForm.TreeView = e.F orm.Controls("TreeView2")
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.Connection Name = "ShcsErpSql"
cmd.CommandText = "select SUBSTRING(config,7,CHARINDEX(\' \',SUBSTRING(config,7,len(config)-6))) as [group], name F rom {Users}"
dt = cmd.ExecuteReader()
trv2.BuildTree(dt,"Group|Name")
trv2.ExpandAll() |
-- 作者:huangfanzi -- 发布时间:2015/5/26 15:51:00 -- .NET Framework 版本:2.0.50727.6421 Foxtable 版本:2014.11.11.1 错误所在事件: 详细错误信息: 参数数据类型 ntext 对于 len 函数的参数 1 无效。 在建表时config的类型是ntext 即备注型
[此贴子已经被作者于2015/5/26 15:52:08编辑过]
|
-- 作者:大红袍 -- 发布时间:2015/5/26 16:04:00 -- 那就不要弄成备注型,改成字符型,给足够的长度即可。 |