以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 动态修改表结构总提示出错?(已解决) (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=30296) |
-- 作者:zpx_2012 -- 发布时间:2013/3/25 11:51:00 -- 动态修改表结构总提示出错?(已解决) 如题,想在命令窗口中通过下面的代码批量的增加一些列,如下: Dim Cns() As String = {"填表人","修改人","sys_流程状态","sys_流程名称","sys_传递说明","sys_编辑者"} Dim Builder As New ADOXBuilder("EI") \'用于外部数据源 Builder.Open() For Each t As Table In Tables For Each Cn As String In Cns If Tables(t.name).Cols.Contains(Cn) = False Then \'如果表中没有此列 With Builder.Tables(t.name) .AddColumn(Cn,ADOXType.String,16) End With End If Next Next Builder.Close() 但运行时总提示如下错误 不知道是哪里错了,请教大家,谢谢!
[此贴子已经被作者于2013-3-25 14:43:17编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2013/3/25 11:55:00 -- 如果通过菜单增加列也不行,那么看看: http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=29816&page=4
|
-- 作者:zpx_2012 -- 发布时间:2013/3/25 12:10:00 -- 通过菜单增加列是没有问题,但那样太麻烦了,因为表单很多要打开来一列一列增加,而且主要都是一些相同的列, 同时我在命令窗口使用这种方式出现这个情况,如果一次只是增加一列,而且现有的每个表都没有这一列的话就没有问题可以增加,若其中有一个表已经有这一列,则会报错。所以我就想在增加前先遍历表并且判断这个列是否存在表中,没有才增加,没想到这样也会提示出错。 那请问狐爸,还有没有其他办法一次性的批量增加列。
|
-- 作者:狐狸爸爸 -- 发布时间:2013/3/25 12:44:00 -- 从简单的开始,先用代码单独增加一列,看看行不行。 |
-- 作者:zpx_2012 -- 发布时间:2013/3/25 14:43:00 -- 谢谢狐爸,解决了,原来是要排除关联表就可以了。 |
-- 作者:zerov -- 发布时间:2013/3/25 15:58:00 -- 回复:(zpx_2012)谢谢狐爸,解决了,原来是要排除关... 把代码贴出来,给大家学学 |
-- 作者:zpx_2012 -- 发布时间:2013/3/25 16:32:00 -- 就是增加了一行排除关联列啊,其他都是一样的。但当列已经增加后,不能再运行第二次,会提示出错,当然这个错不影响什么就是了。 Dim Cns() As String = {"填表人","修改人","sys_流程状态","sys_流程名称","sys_传递说明","sys_编辑者"} Dim Builder As New ADOXBuilder("EI") \'用于外部数据源 Builder.Open() For Each t As Table In Tables If t.Isrelation = False For Each Cn As String In Cns If Tables(t.name).Cols.Contains(Cn) = False Then \'如果表中没有此列 With Builder.Tables(t.name) .AddColumn(Cn,ADOXType.String,16) \' .DeleteColumn("日期") \' .RenameColumn("第一列","姓名") End With End If Next End If Next
|