如何快速检查数据库连接?

时间:2009-04-23 08:50:09

标签: subsonic

在我的win应用程序中 - 如果无法访问数据库服务器,我想显示信息(或db图标)。但我不想等待30秒超时。用户可以在我的选项对话框中配置服务器,用户,pw。 那么,如果数据库连接有效,那么亚音速是否有办法快速检查?

4 个答案:

答案 0 :(得分:2)

您可以创建一个简单的ping存储过程,然后使用SQL命令的低超时执行该过程,例如:

SubSonic.StoredProcedure sp = SPs.PingStoredProcedure();  
sp.CommandTimeout = 2;  
sp.Execute();  

答案 1 :(得分:0)

您可以找到有关协议的一些信息,并使用TCP套接字简单地模拟它。所以这就像telneting到Web服务器并发出HTTP命令。但是,您可以执行适合您的数据库的命令。这样做可以避免驱动程序中内置的任何超时。或者,您可以使用TCP连接到IP:端口,并查看是否有人在监听。至于Subsonic,没有。

答案 2 :(得分:0)

您可以将连接超时设置为低 - see here for an exmaple,或者可以在后台线程上设置,并让用户知道它正在尝试中。

答案 3 :(得分:0)

在当前版本(521)中,您可以使用IsOnline()方法与存储库模式一起使用。它目前总是返回true(参见here)...但是一旦修复了,你就可以使用重载方法传递一个短暂超时的连接字符串。

http://code.google.com/p/subsonicproject/source/browse/trunk/SubSonic/Sql%20Tools/SubSonicRepository.cs