以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 修改数据源问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=115853) |
-- 作者:wangmin2659 -- 发布时间: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 -- 发布时间:2018/3/15 16:41:00 -- MessageBox.Show(e.ConnectionString ) 弹出的链接字符串,是没有任何问题的
|
-- 作者:有点甜 -- 发布时间:2018/3/15 16:43:00 -- 提示这个错误【SQL Server 不存在或拒绝访问】一般是你ip地址没写对,或者没有带上端口号。
试试改成这样 192.168.1.108,1433 |
-- 作者:有点甜 -- 发布时间:2018/3/15 16:44:00 -- 如果ip地址和端口号都设置正确,还是无法连接,就是你sqlserver没有设置正确
http://www.foxtable.com/webhelp/scr/2348.htm
或者是你的1433端口没有开发出来。 |
-- 作者:wangmin2659 -- 发布时间: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) |
-- 作者:有点甜 -- 发布时间: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 -- 发布时间:2018/3/15 17:12:00 -- 明白了,只是临时修改,临时修改存在的意义呢? 如果我想永久修改,能否通过代码实现
|
-- 作者:有点甜 -- 发布时间:2018/3/15 17:16:00 -- 以下是引用wangmin2659在2018/3/15 17:12:00的发言:
明白了,只是临时修改,临时修改存在的意义呢? 如果我想永久修改,能否通过代码实现
永久修改,无法用代码实现的。
临时性修改是用于发布后的项目的,对于发布后的项目,无法修改配置数据源(除了开发者、管理员),当数据源变化的时候,可以动态设置然后打开程序使用。 |