以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=159527)

--  作者:Artemis
--  发布时间:2020/12/29 14:08:00
--  [求助]
 专家,你好。请问以下问题:
在项目文件目录下设置了一个ip.txt文件,里面是:E:\\1.mdb
我在项目事件BeforeConnectOuterDataSource,写了代码
Dim ipFile As String = e.ProjectPath & "ip.txt"
If Filesys.FileExists(ipFile) Then
 Dim
ip As String = FileSys.ReadAllText(ipFile)
 e.ConnectionString = e.ConnectionString.Replace("
c:\\2.mdb",ip)
End
If

当1.mdb没有设置密码时,可以连接上。但是设置密码后,就连接不上了。
后来我写成
Dim ipFile As String = e.ProjectPath & "ip.txt"
If Filesys.FileExists(ipFile) Then
 Dim
ip As String = FileSys.ReadAllText(ipFile)
 e.ConnectionString = e.ConnectionString.Replace("
c:\\2.mdb","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ip & ";Persist Security Info=true;Jet OLEDB:Database Password=111111")
End
If

还是没用,请问如何解决。谢谢。

--  作者:有点蓝
--  发布时间:2020/12/29 14:13:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=50080

原来的连接字符串是怎么用的?发上来看看

试试
e.ConnectionString = e.ConnectionString.Replace("c:\\2.mdb",ip) & ";Jet OLEDB:Database Password=111111"

--  作者:Artemis
--  发布时间:2020/12/29 14:27:00
--  
 以下是我正常连接数据库的字符串,一直都没有问题,可以正常使用。

Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=C\\data\\test.mdb;Persist Security Info=True;Jet OLEDB:Database Password=111111

至于老师你说的方法我晚上在家试一下。
e.ConnectionString = e.ConnectionString.Replace("c:\\2.mdb",ip) & ";Jet OLEDB:Database Password=111111"

在帮助里,我好向没有看到这样的写法,希望有用啊。谢谢啦。

--  作者:有点蓝
--  发布时间:2020/12/29 14:28:00
--  
如果2个数据库的密码完全一致,下面语法肯定没有问题

e.ConnectionString = e.ConnectionString.Replace("C\\data\\test.mdb",ip)
--  作者:Artemis
--  发布时间:2020/12/29 14:32:00
--  
 嗯,我是一个有密码,一个没有密码。用有密码的去替代没有密码的就出现连接错误。直接退出了。
按照老师的意思就是如果两个数据库的密码一致,那么
e.ConnectionString = e.ConnectionString.Replace("C\\data\\test.mdb",ip)
上述代码是肯定可以执行的对吧??那这样就简单了,我回去把两个交替使用的数据库设置成一样的密码试一下就知道了。对吧。老师。
谢谢。

--  作者:有点蓝
--  发布时间:2020/12/29 14:49:00
--  
没有密码的原来的连接字符串是怎么用的?发上来看看
--  作者:Artemis
--  发布时间:2020/12/29 15:03:00
--  
 这是没有密码的连接字符串。

Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=C\\data\\test.mdb;Persist Security Info=false
--  作者:有点蓝
--  发布时间:2020/12/29 15:06:00
--  
e.ConnectionString = e.ConnectionString.Replace("C\\data\\test.mdb",ip).Replace("Persist Security Info=false","") & ";Persist Security Info=True;Jet OLEDB:Database Password=111111"
[此贴子已经被作者于2020/12/29 15:05:50编辑过]

--  作者:Artemis
--  发布时间:2020/12/29 15:11:00
--  
老师,这样的双重replace我还没有用过。晚上试下。
e.ConnectionString = e.ConnectionString.Replace("C\\data\\test.mdb",ip).Replace("Persist Security Info=false","") & ";Persist Security Info=True;Jet OLEDB:Database Password=111111"

后面的replace有点迷糊。





--  作者:有点蓝
--  发布时间:2020/12/29 15:16:00
--  
Persist Security Info=false去掉