以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 向系统修复必须的列 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=169876) |
-- 作者:yifan3429 -- 发布时间: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编辑过]
|
-- 作者:有点蓝 -- 发布时间: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 |