Foxtable(狐表)用户栏目专家坐堂 → 如何获取更新数据


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

主题:如何获取更新数据

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


加好友 发短信
等级:婴狐 帖子:91 积分:712 威望:0 精华:0 注册:2012/7/10 21:39:00
如何获取更新数据  发帖心情 Post By:2012/10/22 14:38:00 [只看该作者]

当一些表是根据窗口加载时用代码生成外部表或外部查询表,因为某些表是联合查询的数据表,想得到更新的数据,用了重新登录的方式,想通过全部删除用代码加载来的表,使用了如下代码:

For Each dt As DataTable In DataTables
    If dt.Type <> 1 Then
        DataTables.Delete(dt.Name)
    End If
Next

报了如下异常 


图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看

如何解决好呢?


 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/10/22 15:17:00 [只看该作者]

 应该是删除的方式不对。

 要从后往前删除。

 For i As Integer = DataTables.Count - 1 To 0 Step -1
     DataTables.Delete(DataTables(i).Name)
 Next

 回到顶部
帅哥哟,离线,有人找我吗?
与伊相伴
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:91 积分:712 威望:0 精华:0 注册:2012/7/10 21:39:00
  发帖心情 Post By:2012/10/22 16:20:00 [只看该作者]

谢谢,但是我试了这种方式,提示有些表不能删的,我自己找到了另一种方法

代码如下,只有用代码的加载的表,才能代码删除,代码是多写了点,但是实现了

Dim lst As new List(of String)
For Each dt As DataTable In DataTables
    If dt.Type >= 3 Then
        lst.Add(dt.Name)
    End If
Next
Dim Arr() As String
Arr = lst.ToArray
For Each ar As String In Arr
    DataTables.Delete(ar)
Next


 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/10/22 16:50:00 [只看该作者]

 呵呵,楼主,为什么直接加一个判断呢?

 If DataTables(i).Type >= 3 Then
     DataTables.Delete(DataTables(i).Name)
 End If

 回到顶部