Question

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.

Was it helpful?

Solution 3

I've figured it out! I shouldn't have created a new config file. There is a default app.config file in the project. Now everything is fine.

<?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;

OTHER TIPS

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"];

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;
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top