App.Config设置为ComboBox

时间:2014-07-10 17:21:48

标签: c# combobox app-config

以下是App.Config Code

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
    <appSettings>
        <add key="DBServer" value="Localhost"/>
        <add key="DBServer" value="Sql2005rs"/>
        <add key="DBName" value="Everest"/>
   </appSettings>
</configuration>

我试图在组合框中返回值Local Host和Sql2005rs这是我正在使用的,任何人都可以告诉我为什么它会失败。

public Form1()
{
    InitializeComponent();
        var DBServerNames = ConfigurationManager.AppSettings.AllKeys .Where(key => key.StartsWith("DBServer")) .Select (key => ConfigurationManager.AppSettings[key]) .ToArray();
        DBServer.Items.AddRange(DBServerNames);
}

然而它只返回sql2005rs,任何人都知道为什么?

1 个答案:

答案 0 :(得分:1)

当您使用相同的密钥进行多项设置时,您将始终获得最后一个。当你有多个相同的密钥时,每个密钥都被下一个密钥覆盖。

所以不要这样做,这真的不是一件好事 - 键应该是唯一的,就像在任何键/值字典中一样 - 将你的设置更改为:

<appSettings>
        <add key="DBServers" value="Localhost,Sql2005rs"/>
        <add key="DBName" value="Everest"/>
   </appSettings>

然后只需取出DBServers值并解析它。类似的东西:

string[] myServers= ConfigurationManager.AppSettings["DBServers"].Split(',');
相关问题