以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]表的批量卸载代码求助 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=70211) |
-- 作者:huangfanzi -- 发布时间:2015/6/17 12:30:00 -- [求助]表的批量卸载代码求助 项目中有个切换用户的确认按钮,其中有一段代码运行出错,请老师帮我看看。 For Each dt As DataTable In DataTables Select Case dt.Name Case "Main" ,"Help" \'不卸载此二表 Case Else \'其他所有表都卸载 DataTables.Unload(dt.name) End Select Next 返回的信息是: .NET Framework 版本:2.0.50727.6421 Foxtable 版本:2014.11.11.1 错误所在事件:窗口,用户登录,Button_确认,Click 详细错误信息: 集合已修改;可能无法执行枚举操作。 |
-- 作者:Bin -- 发布时间:2015/6/17 14:06:00 -- 呵呵,不能这么做 dim dts as new List(of string) For Each dt As DataTable In DataTables Select Case dt.Name Case "Main" ,"Help" \'不卸载此二表 Case Else \'其他所有表都卸载 dts.add(dt.name) End Select Next for each s as string in dts DataTables.Unload(s) next |
-- 作者:huangfanzi -- 发布时间:2015/6/17 14:09:00 -- 谢谢BIN老师,您用的是向一个集合添加表名的办法,刚才我自己想出了个办法,请大家参考一下,见笑。 Dim dtname As String For Each dt As DataTable In DataTables If dt.Name = "Main" OrElse dt.Name = "Help" Then dtname = dtname Else dtname = dtname & "|" & dt.name End If Next If dtname IsNot Nothing Then DataTables.Unload(dtname.trim("|") ) End If |
-- 作者:Bin -- 发布时间:2015/6/17 14:11:00 -- 你这个更好,少了一次遍历 |