Foxtable(狐表)用户栏目专家坐堂 → [求助]


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

主题:[求助]

美女呀,离线,留言给我吧!
Artemis
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:79 积分:900 威望:0 精华:0 注册:2018/2/22 21:28:00
[求助]  发帖心情 Post By: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

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

 回到顶部
美女呀,离线,留言给我吧!
Artemis
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:79 积分:900 威望:0 精华:0 注册:2018/2/22 21:28:00
  发帖心情 Post By: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"

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

 回到顶部
美女呀,离线,留言给我吧!
Artemis
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:79 积分:900 威望:0 精华:0 注册:2018/2/22 21:28:00
  发帖心情 Post By:2020/12/29 14:32:00 [显示全部帖子]

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

 回到顶部
美女呀,离线,留言给我吧!
Artemis
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:79 积分:900 威望:0 精华:0 注册:2018/2/22 21:28:00
  发帖心情 Post By:2020/12/29 15:03:00 [显示全部帖子]

 这是没有密码的连接字符串。

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

 回到顶部
美女呀,离线,留言给我吧!
Artemis
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:79 积分:900 威望:0 精华:0 注册:2018/2/22 21:28:00
  发帖心情 Post By: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有点迷糊。





 回到顶部
美女呀,离线,留言给我吧!
Artemis
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:79 积分:900 威望:0 精华:0 注册:2018/2/22 21:28:00
  发帖心情 Post By:2020/12/29 15:20:00 [显示全部帖子]

老师,你的意思是
 .Replace("Persist Security Info=false","")
变成:
.Replace("","")
对吧?但是是什么意思呢???为啥会有双重replace
为啥后面的replace是空替代空??
。。。。。。

 回到顶部
美女呀,离线,留言给我吧!
Artemis
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:79 积分:900 威望:0 精华:0 注册:2018/2/22 21:28:00
  发帖心情 Post By:2020/12/29 19:37:00 [显示全部帖子]

谢谢,老师,你说的三种方法我都试了。其中:
第一种:数据库密码不一致可以成功连接
e.ConnectionString = e.ConnectionString.Replace("c:\2.mdb",ip) & ";Jet OLEDB:Database Password=111111"

第二种:数据库密码必须一致,否则不能连接
e.ConnectionString = e.ConnectionString.Replace("C\data\test.mdb",ip)

第三种:这种双replace方法也可以,但是要把";Persist Security Info=True;Jet OLEDB:Database Password=111111"中的;Persist Security Info=True去掉,不然项目启动连接数据库会有不符合规范的错误提示。只要把这个去掉然后再写上& ";Jet OLEDB:Database Password=111111"就可以成功链接
e.ConnectionString = e.ConnectionString.Replace("C\data\test.mdb",ip).Replace("Persist Security Info=false","") & ";Persist Security Info=True;Jet OLEDB:Database Password=111111"

再一次感谢老师指导。谢谢。

 回到顶部