C# 如何判断SQL Server已启动并可以使用?

C# 如何判断SQL Server已启动并可以使用?,c#,sql-server,service,C#,Sql Server,Service,我有一个在系统启动时运行的应用程序,需要与本地SQLServer2005安装进行对话。我正在使用ServiceController类等待它进入“运行”状态,大多数情况下,这一切正常。但是,有时在冷启动时,我的第一个查询失败,表示无法登录当前用户 这听起来像是种族问题,但我想我的WaitForStatus电话应该能解决这个问题 有没有更好的方法来确保它真正运行?我是否应该投入额外的睡眠时间,并假设它足够长?您可以捕获异常并重试,直到它工作为止……您可以随时使用并检查本地实例 另外,您还可以使用枚举

我有一个在系统启动时运行的应用程序,需要与本地SQLServer2005安装进行对话。我正在使用ServiceController类等待它进入“运行”状态,大多数情况下,这一切正常。但是,有时在冷启动时,我的第一个查询失败,表示无法登录当前用户

这听起来像是种族问题,但我想我的WaitForStatus电话应该能解决这个问题


有没有更好的方法来确保它真正运行?我是否应该投入额外的睡眠时间,并假设它足够长?

您可以捕获异常并重试,直到它工作为止……

您可以随时使用并检查本地实例


另外,您还可以使用枚举器发现版本信息。

判断它是否“真正正在运行”的最佳方法是运行查询,因此这必须是最佳选择。此解决方案似乎在测试中对我很有效。事件查看器会收到一些“SQL Server尚未准备好接受新的客户端连接”错误条目,但一旦服务器联机,程序就会正常工作。我可能会先尝试一下。谢谢