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

8

可能是重复问题:
如何检查连接字符串是否有效?

目前我是这样做的:

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

有没有更好的方法来做这件事?


这是一个重复的内容。如果可以的话,我会将其删除。 - Chris Pfohl
2个回答

4

这基本上是正确的做法,但是您应该考虑处理其他异常类型。连接到数据库服务器失败可能有其他原因,而不仅仅是SQL问题。

除了SqlException之外,Connection.Open还可能抛出InvalidOperationException和ArgumentException。此外,.Open调用的API也可能引发其他类型的异常,并且这些异常可能传播到您的代码中。事实上,这是少数情况之一,可能更倾向于处理基本异常并将其消息显示给用户。(一般的经验法则是仅处理特定的异常。)


1
非常正确:数据库可能是有效的,但网络故障,服务器正在重新启动等。 - John Warlow

0

不,没有其他方法...那是唯一的方法

你可以捕获SqlException并根据异常中的Number返回更多信息以便在失败时使用


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接