app.config文件中有多个SQL Server连接字符串

我有兴趣在Windows窗体应用程序中显示N个单选按钮列表,供用户选择目标数据库服务器。 我想在app.config文件中添加SQL Server连接字符串,因此它们在运行时由应用程序读取,并在窗体中作为单选按钮呈现。

起初我想过使用分隔符来分隔连接

   

然后拆分键值对。

是否有可能以不同的方式做到这一点?

要从app.config中查找所有已定义的连接字符串,请使用ConfigurationManager (来自System.Configuration)。

它有一个枚举: ConfigurationManager.ConnectionStrings ,它包含中的所有条目。

您可以使用以下代码循环它:

 foreach(ConnectionStringSettings css in ConfigurationManager.ConnectionStrings) { string name = css.Name; string connString = css.ConnectionString; string provider = css.ProviderName; } 

Name只是你给连接字符串的符号名称 – 它可以是任何东西,真的。

ConnectionString是连接字符串本身。

ProviderName是连接的ProviderName的名称,例如SQL Server的System.Data.SqlClient (以及其他数据库系统的其他)。 如果从config中的连接字符串中省略providerName=属性,则默认为SQL Server(System.Data.SqlClient)。

使用connectionStrings部分定义连接字符串。

     

是的,可以用另一种方式做到这一点。 检查您可以在app.config文件中创建的connectionStrings部分。

       

我们可以在Web.Config或App.Config下声明多个连接字符串

     

在DAL或.cs文件中,您可以访问连接字符串,如此string SounceConnection = ConfigurationManager.ConnectionStrings["SourceDB"].ConnectionString; string DestinationConnection = ConfigurationManager.ConnectionStrings["DestinationDB"].ConnectionString; string SounceConnection = ConfigurationManager.ConnectionStrings["SourceDB"].ConnectionString; string DestinationConnection = ConfigurationManager.ConnectionStrings["DestinationDB"].ConnectionString;

您可以使用AppSettings类,获取以ConnectionString开头并显示它们的所有键的列表。

您的配置文件将如下所示:

      

您可以通过拆分键名来获取名称(在此示例中使用“_”)。

顺便说一句:您还应该使用ConnectionStrings部分,您只对连接字符串感兴趣。

这是如何使用LINQ获取连接字符串列表:

 List connectionStrings = ConfigurationManager.ConnectionStrings .Cast() .Select(v => v.ConnectionString) .ToList(); 

或者你可以建立一个它的字典:

 Dictionary keyValue = ConfigurationManager.ConnectionStrings .Cast() .ToDictionary(v => v.Name, v => v.ConnectionString);