Foxtable(狐表)用户栏目专家坐堂 → 关于Connections.TryConnect这个问题!


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

主题:关于Connections.TryConnect这个问题!

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


加好友 发短信
等级:幼狐 帖子:172 积分:1577 威望:0 精华:0 注册:2021/8/9 16:05:00
关于Connections.TryConnect这个问题!  发帖心情 Post By:2022/9/17 10:01:00 [只看该作者]

一旦数据源连不上,这个检测连接要花好久,一直处于卡死状态。。。其实一般3秒都没连上 基本上就连不上了,有什么方法可以快速判断连接状态? 或者3秒没连上 我直接判断为连接失败!

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


加好友 发短信
等级:三尾狐 帖子:760 积分:5430 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By:2022/9/17 10:03:00 [只看该作者]


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


加好友 发短信
等级:幼狐 帖子:172 积分:1577 威望:0 精华:0 注册:2021/8/9 16:05:00
  发帖心情 Post By:2022/9/17 10:37:00 [只看该作者]

这个帖子我看过,我只需要判断数据源是否连接,因此引用了如下代码:

Dim str As String = "Provider=SQLOLEDB.1;Password=" & r("密码") & ";Persist Security Info=True;User ID=" & r("用户名") & ";Initial Catalog=master;Data Source=" & r("服务器")

Dim mess As String = "数据源连接成功!"
Try
    Dim conn As ADODB.Connection
    conn = New ADODB.Connection
    conn.ConnectionString = str
    conn.Open
    conn.close
Catch ex As Exception
    mess = "SQL数据库" & Err.Description
End Try
MessageBox.Show(mess)

可是这部分代码发现时间仍然需要很久!

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/9/17 10:42:00 [只看该作者]

conn = New ADODB.Connection
conn.ConnectionTimeout=3

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


加好友 发短信
等级:幼狐 帖子:172 积分:1577 威望:0 精华:0 注册:2021/8/9 16:05:00
  发帖心情 Post By:2022/9/17 10:47:00 [只看该作者]

老师,不行额。
Dim str As String = "Provider=SQLOLEDB.1;Password=" & r("密码") & ";Persist Security Info=True;User ID=" & r("用户名") & ";Initial Catalog=master;Data Source=" & r("服务器")

Dim mess As String = "数据源连接成功!"
Try
    Dim conn As ADODB.Connection
    conn = New ADODB.Connection
    conn.ConnectionTimeout=3
    conn.ConnectionString = str
    conn.Open
    conn.close
Catch ex As Exception
    mess = "SQL数据库" & Err.Description
End Try
MessageBox.Show(mess)

改成这样仍旧花了一分钟左右

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/9/17 11:34:00 [只看该作者]

ip可以访问的情况下,ConnectionTimeout才有效。先判断IP是否可用,2楼的贴估计也没有怎么仔细看

If Network.Ping("192.192.192.192", 1) Then
    Dim str As String = "Password=888;Persist Security Info=True;User ID=sa;Initial Catalog=abc;Data Source=192.192.192.192;Connection Timeout=1"
    
    Dim mess As String = "数据源连接成功!"
    Try
        Dim conn As New system.Data.SqlClient.SqlConnection
        conn.ConnectionString = str
        conn.Open
        conn.close
    Catch ex As Exception
        mess = "SQL数据库" & Err.Description
    End Try
    MessageBox.Show(mess)
Else
    Messagebox.Show("该服务器不可用") 
End If

 回到顶部