在我的 win 应用程序中 - 如果无法访问数据库服务器,我想显示信息(或 db 图标)。但我不想等待 30 秒超时。用户可以在我的选项对话框中配置服务器、用户、密码。那么,有没有办法在亚音速中快速检查数据库连接是否有效?
问问题
1027 次
4 回答
2
您可以创建一个简单的 ping 存储过程,然后在 SQL 命令上以低超时执行该过程,例如:
SubSonic.StoredProcedure sp = SPs.PingStoredProcedure();
sp.CommandTimeout = 2;
sp.Execute();
于 2009-04-23T10:11:26.057 回答
0
您可以找到有关协议的一些信息,并使用 TCP 套接字简单地模拟这些信息。所以这就像远程登录到 Web 服务器并发出 HTTP 命令。但是,您会执行适合您的数据库类型的命令。这样做可以避免驱动程序中内置的任何超时或其他任何东西。或者,您可以简单地使用 TCP 连接到 IP:Port 并查看是否有人在监听。至于亚音速,没有。
于 2009-04-23T08:59:29.553 回答
0
您能否将连接超时设置为低 -请参阅此处以获取示例,或者可能在后台线程上执行此操作,并让用户知道它正在尝试。
于 2009-04-23T09:35:08.220 回答
0
在当前版本 (521) 中有一个 IsOnline() 方法,您可以将其与存储库模式一起使用。它目前总是返回 true (见这里)......但是一旦修复,您可以使用在连接字符串中传递的重载方法,并且超时时间很短。
于 2009-04-23T18:11:43.253 回答