Foxtable(狐表)用户栏目专家坐堂 → [分享]动态切换数据源,供参考


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

主题:[分享]动态切换数据源,供参考

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


加好友 发短信
等级:三尾狐 帖子:657 积分:6110 威望:0 精华:0 注册:2013/10/22 12:15:00
[分享]动态切换数据源,供参考  发帖心情 Post By:2023/9/5 16:22:00 [只看该作者]

动态切换数据源,供参考

Dim lx As String = "Access 2000/2003" '数据库类型
Dim value1, name1 As String
Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter = "青橙接口文件|*.zjk" '设置筛选器
dlg.InitialDirectory = ProjectPath & "数据库\"
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    name1 = dlg.FileName'数据库名称
    Dim sjy As String = Rand.NextString(16) '随机生成,避免重复
    Connections.Add(sjy, "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & name1 & ";Persist Security Info=False")
    If lst.Contains("A1_qdk") Then
        
       '可以进一步判断,列名等是否与当前表一致
        
        For Each frm As WinForm.Form In forms '关闭主窗口以外的所有窗口,确保没有其他窗口打开
            If frm.Name <> "主窗口" And frm.Opened Then
                frm.close()
            End If
        Next 
      
       
        value1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & name1 & ";Persist Security Info=False"
        
        Dim s As String = ""
        '遍历当前属于此数据源的表
        For Each dt As DataTable In DataTables
            If dt.C Then
                s += "|" & dt.name
            End If
        Next
        s = s.Trim("|")
        
        '卸载表
        DataTables.Unload(s)
        If Connections.Contains("青橙") Then
            Connections.Delete("青橙")
        End If
        
        
        Connections.add("青橙", value1) 
        DataTables.load(s) 
        
        '  Application.Restart()            '系统重新启动    
        MainTable = Tables("A1_qdk")
    End If 
End If
[此贴子已经被作者于2023/9/6 8:51:51编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111419 积分:567171 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/9/5 16:54:00 [只看该作者]

多谢分享。

按理2个数据源的表格应该是一致的,不过为什么不直接从"青橙"里获取需要卸载的表名,而要新添加一个sjy数据源,再去获取要遍历的表名呢。

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


加好友 发短信
等级:三尾狐 帖子:622 积分:5303 威望:0 精华:0 注册:2022/4/4 14:42:00
回复:(tongliaozyr)[分享]动态切换数据源,供参考  发帖心情 Post By:2023/9/5 17:09:00 [只看该作者]

感谢分享

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


加好友 发短信
等级:三尾狐 帖子:622 积分:5303 威望:0 精华:0 注册:2022/4/4 14:42:00
回复:(有点蓝)多谢分享。按理2个数据源的表格应该是...  发帖心情 Post By:2023/9/5 17:11:00 [只看该作者]

dlg.Filter = "青橙接口文件|*.zjk" '设置筛选器

这个的意思,是筛选 的.zjk 文件吧?  是自定义的文件吗?
还是.mdb文件,可以自定义成其他的扩展名?

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


加好友 发短信
等级:三尾狐 帖子:657 积分:6110 威望:0 精华:0 注册:2013/10/22 12:15:00
  发帖心情 Post By:2023/9/6 7:43:00 [只看该作者]

那段代码是判断拟打开的表是否与当前表一致的,一直则导入,有差异进行相应处理或者不再导入。
[此贴子已经被作者于2023/9/6 8:23:51编辑过]

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


加好友 发短信
等级:三尾狐 帖子:657 积分:6110 威望:0 精华:0 注册:2013/10/22 12:15:00
  发帖心情 Post By:2023/9/6 7:45:00 [只看该作者]

.mdb文件,直接改的扩展名,便于识别而已。

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111419 积分:567171 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/9/6 8:34:00 [只看该作者]

这里的代码不完整,看不出有判断【拟打开的表是否与当前表一致

    '遍历当前属于此数据源的表
    For Each dt As DataTable In DataTables
        If dt.C Then
            s += "|" & dt.name
        End If
    Next

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


加好友 发短信
等级:三尾狐 帖子:657 积分:6110 威望:0 精华:0 注册:2013/10/22 12:15:00
  发帖心情 Post By:2023/9/6 8:53:00 [只看该作者]

重新编辑了一下,请指正

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111419 积分:567171 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/9/6 9:05:00 [只看该作者]

还是没有哦,估计是某些关键词被网站屏蔽了,可以这样处理一下,修改帖子,选中部分内容,设置一下斜体等样式,然后重新发布


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2023/9/6 9:05:46编辑过]

 回到顶部