Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共9 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

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

1楼
tongliaozyr 发表于: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楼
有点蓝 发表于:2023/9/5 16:54:00
多谢分享。

按理2个数据源的表格应该是一致的,不过为什么不直接从"青橙"里获取需要卸载的表名,而要新添加一个sjy数据源,再去获取要遍历的表名呢。
3楼
moseser 发表于:2023/9/5 17:09:00
感谢分享
4楼
moseser 发表于:2023/9/5 17:11:00
dlg.Filter = "青橙接口文件|*.zjk" '设置筛选器

这个的意思,是筛选 的.zjk 文件吧?  是自定义的文件吗?
还是.mdb文件,可以自定义成其他的扩展名?
5楼
tongliaozyr 发表于:2023/9/6 7:43:00
那段代码是判断拟打开的表是否与当前表一致的,一直则导入,有差异进行相应处理或者不再导入。
[此贴子已经被作者于2023/9/6 8:23:51编辑过]
6楼
tongliaozyr 发表于:2023/9/6 7:45:00
.mdb文件,直接改的扩展名,便于识别而已。
7楼
有点蓝 发表于:2023/9/6 8:34:00
这里的代码不完整,看不出有判断【拟打开的表是否与当前表一致

    '遍历当前属于此数据源的表
    For Each dt As DataTable In DataTables
        If dt.C Then
            s += "|" & dt.name
        End If
    Next
8楼
tongliaozyr 发表于:2023/9/6 8:53:00
重新编辑了一下,请指正
9楼
有点蓝 发表于:2023/9/6 9:05:00
还是没有哦,估计是某些关键词被网站屏蔽了,可以这样处理一下,修改帖子,选中部分内容,设置一下斜体等样式,然后重新发布


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

[此贴子已经被作者于2023/9/6 9:05:46编辑过]
共9 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03125 s, 2 queries.