【问题标题】:ConfigurationManager in WPFWPF 中的配置管理器
【发布时间】:2014-03-04 12:37:34
【问题描述】:

我在 wpf 项目中有一个配置文件来存储连接字符串。 但是当我尝试获取 AppSettings 和 ConnectionStrings 时,我得到了 null。

WEB.config文件是这样的:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="Trackboard" connectionString="Data Source=(localdb)\v11.0;Initial Catalog=Trackboard;Integrated Security=True;AttachDbFileName=E:\Users\Sean\Workspace\DATABASE\Trackboard.mdf"/>
  </connectionStrings>
  <appSettings>
    <add key="Trackboard" value="Data Source=(localdb)\v11.0;Initial Catalog=Trackboard;Integrated Security=True;AttachDbFileName=E:\Users\Sean\Workspace\DATABASE\Trackboard.mdf"/>
  </appSettings>
</configuration>

我尝试了几种方法:

W1: ConnStr = ConfigurationManager.ConnectionStrings["Trackboard"].ConnectionString;
W2: ConnStr = ConfigurationManager.ConnectionStrings[0].ConnectionString;
W3: ConnStr = ConfigurationManager.AppSettings["Trackboard"];
W4: ConnStr = ConfigurationManager.AppSettings[0];

它们都不起作用。

但是这个有效:

ConnStr = @"Data Source=(localdb)\v11.0;Initial Catalog=Trackboard;Integrated Security=True;AttachDbFileName=E:\Users\Sean\Workspace\DATABASE\Trackboard.mdf";

(这意味着我不能使用配置文件,这违背了我的意愿) 我需要帮助。

【问题讨论】:

  • 为什么选择 WEB.config 用于 WPF 应用程序。它必须是APP.config。
  • :P 我只是把它重命名为 WEB.config

标签: c# sql wpf configurationmanager appsettings


【解决方案1】:

只需添加 app.config 而不是 web.config,因为它不是 Web 应用程序。

然后太简单了,只需添加对 System.Configuration 的引用,然后使用它。

var ConnStr = ConfigurationManager.AppSettings["Trackboard"];

【讨论】:

    【解决方案2】:

    这个使用System.Configuration命名空间

    using System.Configuration;
    


    或者在引用中添加System.Configuration

    System.ConfigurationManager.ConnectionStrings["Trackboard"].ConnectionString;
    System.ConfigurationManager.ConnectionStrings[0].ConnectionString;
    

    【讨论】:

    • 我确实添加了 System.Configuration 引用和命名空间。问题似乎是 System.ConfigurationManager.ConnectionStrings 的计数为 0,这就是为什么我无法通过键或索引获取值。这很奇怪。它适用于 winform 应用程序。
    【解决方案3】:

    我想通了! 我不应该创建一个新的配置文件。项目中有一个默认的 app.config 文件。 现在一切都很好。

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <configSections>
        </configSections>
        <connectionStrings>
            <add name="Trackboard.Properties.Settings.TrackboardConnectionString"
                connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\DATABASE\Trackboard.mdf;Integrated Security=True"
                providerName="System.Data.SqlClient" />
        </connectionStrings>
    </configuration>
    
    private static string ConnStr = ConfigurationManager.ConnectionStrings["Trackboard.Properties.Settings.TrackboardConnectionString"].ConnectionString;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-29
      • 2011-12-19
      • 2012-07-08
      • 2015-10-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-05
      相关资源
      最近更新 更多