'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编辑过]