以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求助获取后台数据表列名 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=99369) |
-- 作者:wei0769 -- 发布时间:2017/4/18 10:47:00 -- 求助获取后台数据表列名 用动态加载数据表,设置加载表的可见列及可编辑列。在设置时没有加载数据表,怎样可以取得该表的列名?
此主题相关图片如下:8.jpg |
-- 作者:有点蓝 -- 发布时间:2017/4/18 11:03:00 -- 必须加载才能获取,参考下面代码加载表结构 Dim cmd As new SQLCommand
Dim dt As DataTable cmd.CommandText = "select * From {表A} where 1=2" dt = cmd.ExecuteReader() |
-- 作者:wei0769 -- 发布时间:2017/4/18 11:25:00 -- 如果有100个表,不是要写100次? |
-- 作者:有点蓝 -- 发布时间:2017/4/18 12:03:00 -- 基本就是这样 |
-- 作者:有点蓝 -- 发布时间:2017/4/18 12:04:00 -- 如果是Sqlserver就比较好办,可以一次性取出来 ------------sqlserver SELECT 表名= convert(varchar(50), d.name ), 字段名= convert(varchar(100), a.name), 类型= CONVERT(varchar(50),b.name) + \'(\' + CONVERT(varchar(10),a.length/2) + \')\', 字段说明=convert(varchar(50), isnull(g.[value],\'\')), 必填 = case a.isnullable when 1 then \'否\' else \'是\' end FROM dbo.syscolumns a left join dbo.systypes b on a.xusertype=b.xusertype inner join dbo.sysobjects d on a.id=d.id and d.xtype=\'U\' and d.name<>\'dtproperties\' left join dbo.syscomments e on a.cdefault=e.id left join sys.extended_properties g on a.id=g.major_id and a.colid=g.minor_id left join sys.extended_properties f on d.id=f.major_id and f.minor_id=0 --where d.name =\'WeChatSeeingRules\' where a.name not in( \'_Identify\',\'_Locked\') order by d.name
|
-- 作者:wei0769 -- 发布时间:2017/4/18 12:44:00 -- 谢谢,我现在改了下方法,只有管理员才需要加载所有的空表,用户不需要增加 |
-- 作者:有点蓝 -- 发布时间:2017/4/18 14:03:00 -- 本应如此。只需处理用户有权限使用的表即可 |
-- 作者:wgqcool -- 发布时间:2021/3/30 2:01:00 -- 回复:(有点蓝)如果是Sqlserver就比较好办,可以一次... 这段代码看了好久看不明白,蓝老师能不能帮忙转成狐表的写法。谢谢~ |
-- 作者:有点蓝 -- 发布时间:2021/3/30 8:28:00 -- 以下是引用wgqcool在2021/3/30 2:01:00的发言:
执行sql参考:http://www.foxtable.com/webhelp/topics/0696.htm
这段代码看了好久看不明白,蓝老师能不能帮忙转成狐表的写法。谢谢~ |