Foxtable(狐表)用户栏目专家坐堂 → 修改数据源问题


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

主题:修改数据源问题

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


加好友 发短信
等级:幼狐 帖子:109 积分:931 威望:0 精华:0 注册:2013/5/18 15:37:00
修改数据源问题  发帖心情 Post By:2018/3/15 16:40:00 [只看该作者]

思路:数据库服务器IP更改后,程序读取txt文件后,修改数据源

BeforeConnectOuterDataSource 中的代码如下:

If e.Name="wangmin" Then 
    If FileSys.FileExists("c:\windows\wangminsql.txt") Then
        Dim sqlconstring As String =FileSys.ReadAllText("c:\windows\wangminsql.txt")
        Dim sqluser,sqlip,sqlpassword As String
        Dim Multi As String = sqlconstring
        Dim Values() As String
        Values = Multi.split("|")
        sqlip=values(0)
        sqluser=values(1)
        sqlpassword=values(2)
        Dim sqlconn As String="Provider=SQLOLEDB.1;Password="& sqlpassword &";Persist Security Info=True;User ID="& sqluser &";Initial Catalog=xiangmu;Data Source="& sqlip &""
        If Connections.TryConnect(sqlconn)=False Then
            MessageBox.Show("数据库连接失败,请联系管理员进行数据库连接工作!")
        Else 
            e.ConnectionString=sqlconn
        End If
    Else
        MessageBox.Show("数据源连接文件已经被破坏,请联系管理员进行数据库连接工作!")
    End If
End If
MessageBox.Show(e.ConnectionString )

运行后, 程序的原来设置的数据源没有修改

仍然弹出错误:

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2018.3.9.1
错误所在事件:
详细错误信息:
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或拒绝访问。

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


加好友 发短信
等级:幼狐 帖子:109 积分:931 威望:0 精华:0 注册:2013/5/18 15:37:00
  发帖心情 Post By:2018/3/15 16:41:00 [只看该作者]

MessageBox.Show(e.ConnectionString )   弹出的链接字符串,是没有任何问题的

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/15 16:43:00 [只看该作者]

提示这个错误【SQL Server 不存在或拒绝访问】一般是你ip地址没写对,或者没有带上端口号。

 

试试改成这样  192.168.1.108,1433


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/15 16:44:00 [只看该作者]

如果ip地址和端口号都设置正确,还是无法连接,就是你sqlserver没有设置正确

 

http://www.foxtable.com/webhelp/scr/2348.htm

 

或者是你的1433端口没有开发出来。


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


加好友 发短信
等级:幼狐 帖子:109 积分:931 威望:0 精华:0 注册:2013/5/18 15:37:00
  发帖心情 Post By:2018/3/15 16:55:00 [只看该作者]

老师好!

应该是我没有表述清楚,

更换的新IP的数据库服务器,是可以访问的。


我重新表述一下:

1.在外部数据源中,我定义了 wangmin 的数据源,数据库地址192.168.11.145
2.现在数据库要迁移到另外一台服务器上,另外一台数据库服务器地址:192.168.11.200
3.192.168.11.200这个数据库服务器,ft是可以畅通访问的,已经经过测试。
4.我想实现的功能是,通过代码修改  wangmin的数据源
5.在BeforeConnectOuterDataSource 中的代码如一楼
6.通过messbox.show 查看 e.connection的数据源连接字符串,经过测试,也是成功的
7.实际手动  数据表+》外部数据源 中查看数据库连接字符串,ip仍然是192.168.11.145(老服务器ip)



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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/15 17:01:00 [只看该作者]

1、如果 MessageBox.Show(e.ConnectionString ) 弹出的是 192.168.11.200,说明没有问题。

 

2、如果弹出式 192.168.11.200,打开依然报错,请加上端口号,如 192.168.11.200,1433

 

3、打开程序后,查看数据源,看到是旧的ip,这个是正常的情况,BeforeConnectOuterDataSource只是临时性修改一下而已。


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


加好友 发短信
等级:幼狐 帖子:109 积分:931 威望:0 精华:0 注册:2013/5/18 15:37:00
  发帖心情 Post By:2018/3/15 17:12:00 [只看该作者]

明白了,只是临时修改,临时修改存在的意义呢?
如果我想永久修改,能否通过代码实现

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/15 17:16:00 [只看该作者]

以下是引用wangmin2659在2018/3/15 17:12:00的发言:
明白了,只是临时修改,临时修改存在的意义呢?
如果我想永久修改,能否通过代码实现

 

永久修改,无法用代码实现的。

 

临时性修改是用于发布后的项目的,对于发布后的项目,无法修改配置数据源(除了开发者、管理员),当数据源变化的时候,可以动态设置然后打开程序使用。


 回到顶部