以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]数据源连接字符串,已解决  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=44220)

--  作者:万通
--  发布时间:2013/12/25 20:58:00
--  [求助]数据源连接字符串,已解决
原因:看小说后,自己查找,原来无意中,多加了一个“\\”。自己的一个乌龙
在BeforeConnectOuterDataSource事件中
1、只有一个数据源,但有两个连接字符串c1、c2
2、当c1不能连通时,就转到用c2连通;
代码设想如下:
  dim c1 as string = "provider ...a"
  dim c2 as string = "provider ...b"
    Try
        If Connections.TryConnect(c1) Then
            e.ConnectionString = c1
        Else
            If Connections.TryConnect(c2) Then
                e.ConnectionString = c2
            End If
        End If
    Catch ex As Exception
        messagebox.show(ex.message)    
    End Try
结果:如果c1不能连通时,就直接弹出要以开发者或管理员重设连接字符串的对话框;
        点击后,就直接退出了。(备注: 因为是自定义的登陆窗口,内置登陆窗口已用默认用户登陆。)

那么,1、如何绕开出错的提示框?2、如何做到:当c1不能连通时,就转到用c2连接呢?;

建议狐爸,在所有连接字符串都不能连通时,才弹出那个重设字符串的窗口不是更好吗?

[此贴子已经被作者于2013-12-25 22:29:01编辑过]

--  作者:有点甜
--  发布时间:2013/12/25 21:05:00
--  
 不弹出提示框?去项目属性那里设置,可以不弹出的;

 看代码,应该是可以转到c2连接的。

--  作者:万通
--  发布时间:2013/12/25 21:13:00
--  
1、因为系统都进不了,进入软件设置更无从谈起;
2、看代码没用,结果就是转不了;
3、看大神或狐爸哈;

--  作者:有点甜
--  发布时间:2013/12/25 21:34:00
--  
 楼主是否有测试过?我测试可以灵活切换的哦。

Dim c1 As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\foxtable\\商业版\\Code.mdb;Persist Security Info=False"
Dim c2 As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\foxtable\\商业版\\Help.mdb;Persist Security Info=False"
If Connections.TryConnect(c1) Then
    e.ConnectionString = c1
Else If Connections.TryConnect(c2) Then
    e.ConnectionString = c2
Else
    msgbox("没有数据源")
End If

--  作者:程兴刚
--  发布时间:2013/12/25 21:38:00
--  
逻辑问题:只有一个数据源,但有两个连接字符串c1、c2

     从上面说法完全可以理解为:c1、c2都同时指向了这个数据源,也就是多域名,都绑定了一个链接地址,您用的不是IP链接,但是您忽略了,C1链接不通时,C2同样链接不通(后台服务器异常的情况下)
     所以,您应该这样:准确地说,确定只有一个数据源的时候,在这里不能链接数据源时,就退出系统,除非您用备用数据源(多数据源方案)。

--  作者:万通
--  发布时间:2013/12/25 21:47:00
--  
说明一下:没有自定义登陆窗口时,是可以转换的。

有自定义登陆窗口时,测试是不行的。
可以这样测试:1、c1为最初数据库所在的位置(如D盘下);
                    2、将数据库移到桌面,c2为数据库新的位置(桌面),
                    3、这样有自定义登陆窗口,并已内置窗口默认用户登陆,测试就会出错的。
[此贴子已经被作者于2013-12-25 21:57:48编辑过]

--  作者:有点甜
--  发布时间:2013/12/25 21:56:00
--  
 只要路径正确,而且数据源存在于路径,就一定能连接上,这是基本的。

 我测试的方法:把两个数据源剪切出来,报错;拷贝任意一个进去,可以连接登陆。

--  作者:程兴刚
--  发布时间:2013/12/25 22:07:00
--  
msgbox.show("没有数据源") \'您不会是依葫芦画瓢画错了吧。
--  作者:万通
--  发布时间:2013/12/25 22:27:00
--  
自己狂晕,搞了半天,竟然是一个乌龙。
在新的连接字符串的数据库地址中,无意中多加了一个“\\”。总怀疑是代码逻辑问题。没想到是这个。

感谢大家的回复,谢谢!不好意思,小心写代码,以此共勉!