![]() |
1
2
这完全取决于你想确定什么。如果您真的想确定“服务器是否在运行,并且能够被访问”,那么我想说,这是最有可能的最有效的方式。我之所以这样说,是因为服务器本身可能已启动,但它可能不接受连接,或者应用程序正在使用的连接可能无效(用户名/密码不正确)。 因此,考虑到这一点,超时是必需的,因为您需要验证真正的连接。如果只想查看服务器是否存在,可以尝试Ping,但这只会告诉您设备是否处于活动状态,而不一定是SQL Server是否完全启动并运行并且可用。 |
![]() |
2
2
由于您专门查看一个SQLServer连接,请将连接字符串放入一个SQLConnectionStringBuilder对象中,并更改超时值。
这样就可以控制超时值。记住,不要把它设得太低,否则你会得到误报。 |
![]() |
3
1
你的模式很接近,但有一个问题。因为sqlconnection实现了IDisposable,所以在返回测试连接之前,确实应该先处理它。
至于其他海报所说的,如果您只想看到一个数据库实例是否正在运行,您可以枚举系统上的进程,或者使用命令行访问来测试数据库,但是这些选项中的任何一个都完全依赖于数据库供应商。对于大多数应用程序,您的方法通常都可以。 |
![]() |
4
0
如果您对特定数据库(而不是整个数据库服务器)的状态感兴趣,那么是的,这是最好的方法。 |
![]() |
5
0
如果你担心超时,有一些事情你可以尝试… 您可以尝试对服务器执行ping操作。除非不允许使用ICMP数据包,否则这将更快地告诉您服务器是否已关闭。如果不能ping,则无法连接。很明显,这并不能保证你可以连接,但如果你不能,它会使事情变得更快。 您可以使用不同的连接字符串进行服务器连接测试。您通常不需要完整的默认时间来建立连接,因此您可以大幅降低连接时间。 如果您允许稍微陈旧的数据,那么您可以拥有一个服务,该服务每隔X分钟(5或10分钟或其他时间)检查一次连接,然后询问该服务以获取最新信息。这更像是 Witness 行为。 |
![]() |
6
0
这可能是一个简化的代码段,但您不应该有conn.dispose()或使用(…)…语句吗? 编辑:没关系,我看到评论了。 |
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |