Dim lst As List(Of String)
Dim Arys() As String
lst = Connections("2022").GetTableNames
Arys = Lst.ToArray() '将集合转换为数组
For Each nm As String In lst
' Output.Show(nm)
Dim dr As DataRow
dr = DataTables("系统_菜单").sqlFind("主表 = '" & nm & " ' ") '找出编号为03的产品
If dr Is Nothing Then '如果没找到的话
DataTables("系统_菜单").AddNew
dr("主表") = nm
dr("主菜单") = "0.未分配"
statusBar.Message1 = nm & "正在创建数据,请稍后..."
Application.DoEvents()
End If
Next
[此贴子已经被作者于2024/1/27 3:50:36编辑过]
可以用,但是数组根本没用到,直接使用集合就够了。
另外麻烦以后提问题,报错的直接把错误的具体内容发上来,没有必要等别人问了再发,不同的错误有不同的解决方法。
---------------------------
版本:2022.8.18.1
---------------------------
代码执行出错,错误信息:
System.NullReferenceException: 未将对象引用设置到对象的实例。
在 UserCode.Test()
---------------------------
确定
---------------------------
Dim dr As DataRow
dr = DataTables("系统_菜单").sqlFind("主表 = '" & nm & " ' ") '找出编号为03的产品
If dr Is Nothing Then '如果没找到的话
DataTables("系统_菜单").AddNew
dr("主表") = nm
dr("主菜单") = "0.未分配"
这段代码要怎么处理
[此贴子已经被作者于2024/1/27 10:35:54编辑过]
If dr Is Nothing Then '如果没找到的话
dr = DataTables("系统_菜单").AddNew
dr("主表") = nm
Dim lst As List(Of String)
Dim Arys() As String
lst = Connections("2022").GetTableNames
Arys = Lst.ToArray() '将集合转换为数组
For Each nm As String In lst
' Output.Show(nm)
Dim dr As DataRow
If dr Is Nothing Then '如果没找到的话
dr = DataTables("系统_存档地址").AddNew
dr("主表") = nm
dr("菜单") = "0.未分配"
statusBar.Message1 = nm & "正在创建数据,请稍后..."
Application.DoEvents()
End If
Next
只能添加一条不能进行对比和添加全部的表
而且主表名存在的话也会再次添加
希望完成的功能是 所有表在系统_存档地址 表中对比一次 如果存在就跳过 不催在就新增补齐
[此贴子已经被作者于2024/1/27 12:41:44编辑过]
那就不要去掉sqlFind啊,自己写的什么代码都看不懂么