Foxtable(狐表)用户栏目专家坐堂 → 请教:在另表取表B所有列名称


  共有15085人关注过本帖树形打印复制链接

主题:请教:在另表取表B所有列名称

美女呀,离线,留言给我吧!
yangming
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
请教:在另表取表B所有列名称  发帖心情 Post By:2009/5/24 17:55:00 [只看该作者]

这段代码错在何处?我的要求是将表B的所有列名称填到表A的第一列中,可是这个代码只在第一列中填了表B最后列的名称

For Each cl As DataCol In DataTables("表B").DataCols
For Each dr As DataRow In DataTables("表A").DataRows
dr("第一列")=cl.Name
Next
Next

 回到顶部
帅哥哟,离线,有人找我吗?
狐哥
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:719 积分:5181 威望:0 精华:1 注册:2008/9/24 10:41:00
  发帖心情 Post By:2009/5/24 19:38:00 [只看该作者]

dim cl as string
For Each dr as datarow in datatables("表B").datarows
For Each dc As DataCol In DataTables("表A").DataCols
    cl = cl & dc.Name
Next
dr("第一列") = cl
NEXT

这个可以.刚写错了
[此贴子已经被作者于2009-5-24 19:43:05编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
smileboy
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 好心情 一级勋章
等级:超级版主 帖子:715 积分:5564 威望:0 精华:1 注册:2008/8/31 20:45:00
  发帖心情 Post By:2009/5/24 19:39:00 [只看该作者]

For Each cl As DataCol In DataTables("表B").DataCols
    Dim dr As DataRow = DataTables("表A").AddNew()
    dr("第一列")=cl.Name
Next

 回到顶部
美女呀,离线,留言给我吧!
yangming
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/5/24 20:03:00 [只看该作者]

狐哥的有错误

smileboy对了,谢谢二位老师!

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/5/24 20:39:00 [只看该作者]

1、建立一个 表名列名和列标题对照表
2、设定三列(名): 表名、列名、列标题
3、执行下面代码,一次就把项目中所有表名、列名、列标题全部填入 (1、中的) 表名列名和列标题对照

For Each dt As DataTable In DataTables
    For Each dc As DataCol In dt.DataCols
        Dim dr As DataRow = DataTables("表名列名和列标题对照表").AddNew()
        dr("表名")=dt.Name
        dr("列名")=dc.Name
        dr("列标题")=dc.caption
    Next
Next


还可以加上表标题的~  
[此贴子已经被作者于2009-5-24 22:14:48编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Fotable
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1015 积分:6979 威望:0 精华:0 注册:2012/8/1 18:41:00
  发帖心情 Post By:2012/8/10 16:07:00 [只看该作者]

你只要增加一个叫 表对照 的表 剩下的万能代码帮你搞定

 

Dim dc As DataCol
Dim i As Integer = 0
For Each dt As DataTable In DataTables
    DataTables("表对照").DataCols.Add( dt.name,Gettype(String) )
    With Tables("表对照")
        .position = 0
        i = 0
        For Each dc  In dt.DataCols
            If i >= .Rows.count
                .AddNew()
            End If
            .Rows(.position )(dt.name)=dc.Name
            i=i+1
            .position = i
        Next
    End With
Next


 回到顶部