Foxtable(狐表)用户栏目专家坐堂 → 向系统修复必须的列


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

主题:向系统修复必须的列

帅哥哟,离线,有人找我吗?
yifan3429
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
向系统修复必须的列  发帖心情 Post By:2021/7/5 8:42:00 [只看该作者]

'Dim e As RequestEventArgs = args(0)
Dim e  = args(0)
'''寻找系统必备列 如果没有那就增加
Dim cmd As New SQLCommand
Dim dt As DataTable
Dim sjy As  String = e.Form.Controls("数据源").Value
cmd.ConnectionName = sjy
For Each nm As String In Connections(sjy).GetTableNames
    cmd.CommandText = "SEL ECT * F rom "& nm & " where 1=2"
    dt = cmd.ExecuteReader()
    '如果存在就删除他
    Dim Builder As New  ADOXBuilder(sjy) '要指定数据源名称
    Builder.Open() '打开ADOXBuilder
    'With Builder.Tables(nm)
    'If dt.datacols.contains("sys_日期") Then
    '.DeleteColumn("sys_日期")
    'End If
    'If dt.datacols.contains("sys_姓名") Then
    '.DeleteColumn("sys_姓名")
    'End If
    'If dt.datacols.contains("sys_部门") Then
    '.DeleteColumn("sys_部门")
    'End If
    'If dt.datacols.contains("sys_log") Then
    '.DeleteColumn("sys_log")
    'End If
    ''If dt.datacols.contains("权限组") Then
    '.DeleteColumn("权限组")
    'End If
    'If dt.datacols.contains("审核") Then
    '.DeleteColumn("审核")
    'End If
    'End With
    
    With Builder.Tables(nm)
        ''重新增加列代码
        .AddCol umn("sys_日期" ,ADOXType.DateTime)
        .AddColu mn("sys_姓名" ,ADOXType.String, 5) '增加字符型列,长度指定为12
        .AddColu mn("sys_部门" ,ADOXType.String, 10)
        .AddColu mn("sys_log" ,ADOXType.String, 30)
        .AddColu mn("权限组" ,ADOXType.String, 250)
        .AddColu mn("审核" ,ADOXType.Boolean)
        
    End With
    Builder.Close() '关闭ADOXBuilder
Next
MessageBox.Show( sjy & ": 完成了数据处理")
Syscmd.Project.Open(ProjectFile) '重新启动系统

现在的代码是先删除再增加,我取消了删除就会报错。如何在不删除原有的列情况下,给没有的表增加必须列
[此贴子已经被作者于2021/7/5 8:42:34编辑过]

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


加好友 发短信
等级:超级版主 帖子:107680 积分:547721 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/5 8:57:00 [只看该作者]

if dt.datacols.contains("sys_日期" )=false then
.AddCol umn("sys_日期" ,ADOXType.DateTime)
end if
if dt.datacols.contains("sys_姓名)=false then
.AddCol umn("sys_姓名" ,ADOXType.String, 5)
end if

 回到顶部