【问题标题】:Is there a standard .NET way to test if a SqlConnection string works? [duplicate]是否有标准的 .NET 方法来测试 SqlConnection 字符串是否有效? [复制]
【发布时间】:2010-12-02 17:11:26
【问题描述】:

可能重复:
How to check if connection string is valid?

目前我正在这样做:

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

有没有更好的方法来做到这一点?

【问题讨论】:

  • 它是重复的。如果可以,我会删除。

标签: c# sqlconnection


【解决方案1】:

这几乎就是这样做的方法。尽管您也应该考虑处理其他一些异常类型。除了 sql 问题之外,数据库服务器还可以有 other reasons why you don't connect

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

【讨论】:

  • 非常正确:数据库可能有效但网络已关闭,服务器正在重新启动等
【解决方案2】:

不,没有……这是唯一的方法

您可以捕获SqlException 并返回更多信息以防失败,具体取决于异常中的Number

【讨论】:

    猜你喜欢
    • 2014-06-16
    • 2015-11-12
    • 1970-01-01
    • 2020-11-26
    • 2011-01-13
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多