Foxtable(狐表)用户栏目专家坐堂 → 外部数据源连接


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

主题:外部数据源连接

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/19 14:23:00 [显示全部帖子]

 按住ctrl的时候,就不会允许任何代码,所以也不会允许你项目属性里面改变数据源的代码。

 

 所以,数据源还是你最初设置的那个,如果不存在,就会弹出错误,你设置一下路径保存即可。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/19 16:59:00 [显示全部帖子]

 你的数据库,要放在project文件夹下才行。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/23 9:19:00 [显示全部帖子]

1、是局域网使用,还是单机使用?

 

2、如果是局域网共享使用数据源,你可以用txt的方法,或者选择文件的方法。具体是这样

 

示例三

如果希望能够在打开项目的时候,自动出现一个对话框,让用户可以自由选择外部数据文件,可以BeforeConnectOuterDataSource事件中加入下面的代码:

If e.Name = "连接名称" Then
    Dim
dlg As New OpenFileDialog
    dlg.Filter=
"Access文件|*.mdb"
    If dlg.ShowDialog = DialogResult.Ok Then
        e.ConnectionString =
"Provider=
Microsoft.Jet.OLEDB.4.0;Data Source=" & dlg.FileName & ";Persist Security Info=False"
    End
If
End
if

 

示例四

你也可以用另一种方法解决,在项目文件目录下创建一个ip.txt的文本文件,在该文件中输入最新的IP地址,并在BeforeConnectOuterDataSource事件中设置如下代码:

Dim ipFile As String = e.ProjectPath & "ip.txt"
If
e.Name = "销售数据" Then
    If Filesys.FileExists(ipFile) Then
        Dim ip As String = FileSys.ReadAllText(ipFile)
        e.ConnectionString = e.ConnectionString.Replace("119.119.120.120",ip)
    End
If
End
If


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/28 9:42:00 [显示全部帖子]

1、放到服务器任意一个文件夹都可以,但必须设置文件夹是共享的;

 

2、用ip.txt的方式,只需要修改txt里面的ip地址即可。e.ProjectPath的意思是,取得项目文件夹的路径

 

3、只要电脑之间相互能ping通,就能用共享文件夹的方式


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/28 15:52:00 [显示全部帖子]

红色代码改成你在设置数据源的时候填的什么ip

 

e.ConnectionString = e.ConnectionString.Replace("119.119.120.120",ip)


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/28 16:15:00 [显示全部帖子]

比如,你的数据源这样设置

 

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\192.168.11.116\共享文件夹名\abc.mdb;Persist Security Info=False

 

那么,你的代码就要这样写

 

e.ConnectionString = e.ConnectionString.Replace("\\192.168.11.116\共享文件夹名\abc.mdb", ip)

 

而且,你的ip.txt要这样写

 

\\服务器ip\共享文件夹名\abc.mdb

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/29 17:46:00 [显示全部帖子]

 你外部数据源设置的是 192.168.0.32

 

 那你替换的代码,应该这样写啊 e.ConnectionString = e.ConnectionString.Replace("192.168.0.32", ip)


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/29 18:10:00 [显示全部帖子]

以下是引用yongxuanchen在2015/6/29 17:53:00的发言:
    但是我会遇到这样的情况,当我发布系统后,使用的单位都会有自己的局域网,那么,他们的外部数据源的地址是会改变的,这是第一点,然后,我的 e.ConnectionString = e.ConnectionString.Replace("192.168.0.32", ip)这个语句是不改变的,外部数据源的设置也是不能改变的,我能让客户改变的是Ip.txt的内容,那么,我应该怎样可以解决这个通用性的问题,谢谢。

 

就是这个意思啊。

 

1、192.168.0.32 是你设计软件的时候,连接的数据源,也就是定死在项目里面的;

 

2、你修改ip.txt文件以后,就把192.168.0.32的内容替换成你自己的内容了啊,就连接到那里去了啊


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/30 9:08:00 [显示全部帖子]

回复20楼,你的代码结合ip.txt,把 e.ConnectionString 的值存入txt文件即可


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/30 9:23:00 [显示全部帖子]

如,代码

 

If e.Name = "ddd" Then
    If Connections.TryConnect(e.ConnectionString) = False Then
        Dim strConn As String = ""
        Dim flag As Boolean = False
        If FileSys.FileExists(e.ProjectPath & "ip.txt") Then
            strC & FileSys.ReadAllText(e.ProjectPath & "ip.txt",Encoding.Default) & ";Persist Security Info=False"
            If Connections.TryConnect(strConn) = False Then
                flag = False
            Else
                e.ConnectionString = strConn
                flag = True
            End If
        End If
        If flag = False Then
            Dim dlg As New OpenFileDialog
            dlg.Filter= "Access文件|*.mdb"
            If dlg.ShowDialog = DialogResult.Ok Then
                e.C & dlg.FileName & ";Persist Security Info=False"
                FileSys.WriteAllText(e.ProjectPath & "ip.txt", dlg.FileName, False, Encoding.Default)
            End If
        End If
    End If
End If


 回到顶部
总数 12 1 2 下一页