I have a config file in a wpf project to store the connectionstring. But when I try to get AppSettings and ConnectionStrings, I get null.
the WEB.config file is like this:
<?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>
I tried in several ways:
W1: ConnStr = ConfigurationManager.ConnectionStrings["Trackboard"].ConnectionString;
W2: ConnStr = ConfigurationManager.ConnectionStrings[0].ConnectionString;
W3: ConnStr = ConfigurationManager.AppSettings["Trackboard"];
W4: ConnStr = ConfigurationManager.AppSettings[0];
None of them worked.
But this one worked:
ConnStr = @"Data Source=(localdb)\v11.0;Initial Catalog=Trackboard;Integrated Security=True;AttachDbFileName=E:\Users\Sean\Workspace\DATABASE\Trackboard.mdf";
(That means I cannot use a config file, which is against my will) I need help.
Just add an app.config
and not web.config
because it is not a web application.
And after that it's too simple, just add a reference to to System.Configuration and then use this.
var ConnStr = ConfigurationManager.AppSettings["Trackboard"];
I've figured it out! I shouldn't have created a new config file, there is a default app.config file in project. Now everything is fine. Thank you all!
<?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;
This one use System.Configuration
namespace
using System.Configuration;
Or add System.Configuration
in reference
System.ConfigurationManager.ConnectionStrings["Trackboard"].ConnectionString;
System.ConfigurationManager.ConnectionStrings[0].ConnectionString;
You have to reference the System.Configuration
assembly which is in GAC
Use of ConfigurationManager is not WPF specific : it is the priviledged way to access configuration information for any type of application
Please see MSDN for further info
来源:https://stackoverflow.com/questions/21622009/configurationmanager-in-wpf