Foxtable(狐表)用户栏目专家坐堂 → [求助]表的批量卸载代码求助


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

主题:[求助]表的批量卸载代码求助

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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
[求助]表的批量卸载代码求助  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/6/17 14:11:00 [只看该作者]

你这个更好,少了一次遍历

 回到顶部