Foxtable(狐表)用户栏目专家坐堂 → 怎么在同一个项目的多张表中增加两列并赋值


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

主题:怎么在同一个项目的多张表中增加两列并赋值

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


加好友 发短信
等级:婴狐 帖子:11 积分:130 威望:0 精华:0 注册:2020/3/17 10:34:00
怎么在同一个项目的多张表中增加两列并赋值  发帖心情 Post By:2020/3/23 12:53:00 [只看该作者]

想将所有表中增加两列,并赋值,但是出现错误,代码如下:
For Each dt As DataTable In DataTables
    Dim Names As New List (of String)
    Names.add(dt.name)
    For Each Name As String In Names
        Output.Show (Name)
    Next
    Dim Builder As New ADOXBuilder
    Builder.Open() '打开ADOXBuilder
    With Builder.Tables(Name)
        .AddColumn("LineName" ,ADOXType.String, 20) '增加字符列,长度为20
        .AddColumn("Upload" ,ADOXType.Integer) '增加整数型列
    End With
    For Each dr As DataRow In DataTables(name).DataRows
        dr("LineName" ) = "Line1"
        dr("Upload" ) = "0"
    Next
    Builder.Close() '关闭ADOXBuilder
Next

[此贴子已经被作者于2020/3/23 12:53:16编辑过]

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2020/3/23 12:57:00 [只看该作者]


For Each dt As DataTable In DataTables
    Dim Builder As New ADOXBuilder
    Builder.Open() '打开ADOXBuilder
    With Builder.Tables(dt.name)
        .AddColumn("LineName" ,ADOXType.String, 20) '增加字符列,长度为20
        .AddColumn("Upload" ,ADOXType.Integer) '增加整数型列
    End With
    For Each dr As DataRow In DataTables(name).DataRows
        dr("LineName" ) = "Line1"
        dr("Upload" ) = "0"
    Next
    Builder.Close() '关闭ADOXBuilder
Next

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2020/3/23 13:01:00 [只看该作者]

其实代码都让您写出来了,只是逻辑不对,如果不是所有表,手工指定表用这个,下面指定表A、表B:
Dim Names As New List (of String)
Names.add("表A")
Names.add("表B")
For Each Name As String In Names
     Dim Builder As New ADOXBuilder
    Builder.Open() '打开ADOXBuilder
    With Builder.Tables(Name)
        .AddColumn("LineName" ,ADOXType.String, 20) '增加字符列,长度为20
        .AddColumn("Upload" ,ADOXType.Integer) '增加整数型列
    End With
    For Each dr As DataRow In DataTables(name).DataRows
        dr("LineName" ) = "Line1"
        dr("Upload" ) = "0"
    Next
    Builder.Close() '关闭ADOXBuilder
Next

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


加好友 发短信
等级:婴狐 帖子:11 积分:130 威望:0 精华:0 注册:2020/3/17 10:34:00
  发帖心情 Post By:2020/3/23 13:07:00 [只看该作者]

运行表A,表B的程序,出现如图的错误
图片点击可在新窗口打开查看此主题相关图片如下:3.png
图片点击可在新窗口打开查看

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2020/3/23 13:17:00 [只看该作者]

好像要重新启动,您查帮助改一下,这一段代码好像不能用:
    For Each dr As DataRow In DataTables(name).DataRows
        dr("LineName" ) = "Line1"
        dr("Upload" ) = "0"
    Next

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


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/23 14:30:00 [只看该作者]

需要重启项目,增加的列才能加载使用

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


加好友 发短信
等级:婴狐 帖子:11 积分:130 威望:0 精华:0 注册:2020/3/17 10:34:00
  发帖心情 Post By:2020/3/23 16:43:00 [只看该作者]

按照如下代码增加列,但中途报错,如图:重启项目后,只有第一个表成功添加,其他表都没成功
图片点击可在新窗口打开查看此主题相关图片如下:4.png
图片点击可在新窗口打开查看

For Each dt As DataTable In DataTables
    Dim Builder As New ADOXBuilder
    Builder.Open() '打开ADOXBuilder
    With Builder.Tables(dt.name)
        .AddColumn("LineName" ,ADOXType.String, 20) '增加字符列,长度为20
        .AddColumn("Upload" ,ADOXType.Integer) '增加整数型
    End With
    Builder.Close() '关闭ADOXBuilder
    Syscmd.Project.Open(ProjectFile) '重新打开当前项目
Next

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


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/23 17:11:00 [只看该作者]

改完再重启啊

For Each dt As DataTable In DataTables
    Dim Builder As New ADOXBuilder
    Builder.Open() '打开ADOXBuilder
    With Builder.Tables(dt.name)
        .AddColumn("LineName" ,ADOXType.String, 20) '增加字符列,长度为20
        .AddColumn("Upload" ,ADOXType.Integer) '增加整数型
    End With
    Builder.Close() '关闭ADOXBuilder
Next
    Syscmd.Project.Open(ProjectFile) '重新打开当前项目

 回到顶部