C# 有没有标准的.NET方法来测试SqlConnection字符串是否有效?

C# 有没有标准的.NET方法来测试SqlConnection字符串是否有效?,c#,sqlconnection,C#,Sqlconnection,可能重复: 目前我是这样做的: internal bool CheckConnection() { using (SqlConnection testConn = new SqlConnection(this.ConnectionString)) { try { testConn.Open(); } catch (SqlException) { ret

可能重复:

目前我是这样做的:

internal bool CheckConnection()
{
    using (SqlConnection testConn = new SqlConnection(this.ConnectionString))
    {
        try
        {
            testConn.Open();
        }
        catch (SqlException)
        {
            return false;
        }
    }
    return true;
}

有更好的方法吗?

这几乎就是最好的方法。尽管您也应该考虑处理一些其他异常类型。除了sql问题外,数据库服务器还可能存在其他问题


除了SqlException之外,Connection.Open还可以抛出InvalidOperationException和ArgumentException。此外,支持.Open调用的API还可以引发其他类型的异常,这些异常也会渗透到代码中。事实上,当处理基本异常并向用户显示其消息可能更可取时,这是极少数情况之一。(一般的经验法则是只处理特定的例外情况。)

不,没有。。。这是唯一的办法


您可以捕获
SqlException
,并根据异常中的
Number
返回更多的失败信息。非常正确:数据库可能有效,但网络已关闭,服务器正在重新启动等。它是重复的。如果可以,我会删除。