以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]如何动态替换表列名 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=129902) |
-- 作者:xndd -- 发布时间:2019/1/8 14:47:00 -- [求助]如何动态替换表列名 甜版好。
我通过sql查询方式读取了外部数据源,查询了一张表,是e文列名,但是有一张表是存储中英文列名的,我现在想动态替换,不知道可以不可以?
我看到: 重命名列 在命令窗口执行下面的代码: Dim Builder As New ADOXBuilder
但是如何读取sql查询表的列名?进行替换? |
-- 作者:有点甜 -- 发布时间:2019/1/8 15:22:00 -- Dim Builder As New ADOXBuilder Builder.Open() With Builder.Tables("表A") For Each dc As DataCol In DataTables("表A").DataCols Dim fdr As DataRow = DataTables("中英列名").find("英文=\'" & dc.name & "\'") If fdr IsNot Nothing Then .RenameColumn(dc.name, fdr("中文")) End If Next End With Builder.Close() DataTables.unload("表A") DataTables.load("表A") |
-- 作者:xndd -- 发布时间:2019/1/8 15:31:00 -- 原来如此!谢谢! |
-- 作者:xndd -- 发布时间:2019/1/10 9:53:00 -- 甜版好!
上次试了下,发现有问题:
代码: Dim Builder As New ADOXBuilderBuilder.Open() With Builder.Tables("品号信息") For Each dc As DataCol In DataTables("品号信息").DataCols messagebox.Show(dc.name) Dim fdr As DataRow = DataTables("FUNCTION_INFO_RETURN").find("RETURN_CODE=\'" & dc.name & "\'") If dc.name = "ITEM_CODE" Then messagebox.Show(dc.name) End If If fdr IsNot Nothing Then .RenameColumn(dc.name, fdr("RETURN_NAME")) End If Next End With Builder.Close() DataTables.unload("品号信息") DataTables.load("品号信息")
sql查询表:
是不是SQL查询表不支持这种方式? [此贴子已经被作者于2019/1/10 9:54:41编辑过]
|
-- 作者:有点甜 -- 发布时间:2019/1/10 10:05:00 -- 查询表无法修改表结构的。
如果你只是想修改标题,参考 http://www.foxtable.com/webhelp/scr/1275.htm
如果你想修改列名,请在sql语句那里直接指定别名。 |