我有兴趣在Windows窗体应用程序中显示N个单选按钮列表,供用户选择目标数据库服务器。我想在app.config文件中添加SQL Server连接字符串,因此它们在运行时由应用程序读取,并在窗体中作为单选按钮呈现。
起初我想过使用分隔符分隔连接
<appSettings>
<add key="ConnectionString" value="connection1|user id=user;password=123;server=10.0.0.1;database=myDatabase;connection timeout=30|connection2|user id=user;password=123;server=10.0.0.2;database=myDatabase;connection timeout=30"/>
</appSettings>
然后拆分键值对。
是否有可能以不同的方式做到这一点?
答案 0 :(得分:31)
要从app.config中查找所有已定义的连接字符串,请使用ConfigurationManager
(来自System.Configuration)。
它有一个枚举:ConfigurationManager.ConnectionStrings
,其中包含<connectionStrings>
中的所有条目。
您可以使用以下代码循环显示它:
foreach(ConnectionStringSettings css in ConfigurationManager.ConnectionStrings)
{
string name = css.Name;
string connString = css.ConnectionString;
string provider = css.ProviderName;
}
Name
只是你给连接字符串的符号名称 - 它可以是任何东西,真的。
ConnectionString
是连接字符串本身。
ProviderName
是连接提供商的名称,例如{1}用于SQL Server(以及其他用于其他数据库系统的用户)。如果省略config中连接字符串的System.Data.SqlClient
属性,则默认为SQL Server(System.Data.SqlClient)。
马克
答案 1 :(得分:13)
使用connectionStrings部分定义连接字符串。
<connectionStrings>
<add name="connection1" connectionString="user id=user;password=123;server=10.0.0.1;database=myDatabase;connection timeout=30"/>
<add name="connection2" connectionString="user id=user;password=123;server=10.0.0.2;database=myDatabase;connection timeout=30"/>
</connectionStrings>
答案 2 :(得分:3)
是的,可以用另一种方式做到这一点。检查您可以在app.config文件中创建的connectionStrings部分。
<configuration>
<connectionStrings>
<add name="" connectionString=""/>
<add name="" connectionString=""/>
</connectionStrings>
</configuration>
答案 3 :(得分:1)
我们可以在Web.Config或App.Config
下声明多个连接字符串<connectionStrings>
<add name="SourceDB" connectionString="..." />
<add name="DestinationDB" connectionString="..." />
</connectionStrings>
在DAL或.cs文件中,您可以访问类似此string SounceConnection = ConfigurationManager.ConnectionStrings["SourceDB"].ConnectionString;
string DestinationConnection = ConfigurationManager.ConnectionStrings["DestinationDB"].ConnectionString;
答案 4 :(得分:0)
您可以使用AppSettings类,获取以ConnectionString开头的所有keys的列表并显示它们。
您的配置文件如下所示:
<appSettings>
<add key="ConnectionString_Name1" value="..."/>
<add key="ConnectionString_Name2" value="..."/>
<add key="ConnectionString_Name3" value="..."/>
</appSettings>
您可以通过splitting键名称获取名称(在此示例中使用“_”)。
顺便说一句:您应该也使用ConnectionStrings部分,您只对连接字符串感兴趣。
答案 5 :(得分:0)
这是如何使用LINQ获取连接字符串列表:
# Background color for matching quotes and parenthesis
set fish_color_match <your_color>
或者您可以构建它的字典:
List<string> connectionStrings = ConfigurationManager.ConnectionStrings
.Cast<ConnectionStringSettings>()
.Select(v => v.ConnectionString)
.ToList();