c# - 如何检查连接字符串是否有效?

标签 c# connection-string

我正在编写一个用户手动提供连接字符串的应用程序,我想知道是否有任何方法可以验证连接字符串 - 我的意思是检查它是否正确以及数据库是否存在。

最佳答案

您可以尝试连接吗?对于快速(离线)验证,也许使用 DbConnectionStringBuilder 来解析它...

    DbConnectionStringBuilder csb = new DbConnectionStringBuilder();
    csb.ConnectionString = "rubb ish"; // throws

但要检查数据库是否存在,您需要尝试连接。当然,如果您认识提供者,最简单:

    using(SqlConnection conn = new SqlConnection(cs)) {
        conn.Open(); // throws if invalid
    }

如果您只知道作为字符串的提供者(在运行时),则使用 DbProviderFactories:

    string provider = "System.Data.SqlClient"; // for example
    DbProviderFactory factory = DbProviderFactories.GetFactory(provider);
    using(DbConnection conn = factory.CreateConnection()) {
        conn.ConnectionString = cs;
        conn.Open();
    }

关于c# - 如何检查连接字符串是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/434864/

相关文章:

c# - 异步 HttpListener 每个请求被接收两次

c# - ODBC 连接字符串

c# - 我的 Webforms 数据存储在哪里?

c# - Microsoft Solver Foundation 模运算符

c# - 如何在自述文件中将链接显示为纯文本

c# - 如何解决 "exception of type ' AutoMapper.AutoMapperMappingException' occurred in AutoMapper"- "Error mapping types"?

.net - 如何将 IBM iSeries 2 连接字符串中的 SQL 默认库指示到 AS/400?

php - Yii 应用程序如何保护连接字符串?

asp.net-mvc-3 - Entity Framework - 连接字符串 - 不支持关键字 'Data Source'

c# - 我如何在 wcf 服务中拥有 session ID