0

I want to change app config connection string, through a code

My source code

string connString = "";

connString = "Data Source=" + Convert.ToString(txtServer.EditValue) + ";" + 
             "Initial Catalog=" + Convert.ToString(txtDatabase.EditValue) + ";" +
             "User id=" + Convert.ToString(txtUserName.EditValue) + ";" +
             "Password=" + Convert.ToString(txtPassword.EditValue) + ";";

var config = ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().Location);
ConnectionStringsSection connSection = (ConnectionStringsSection)config.GetSection("connectionStrings");
connSection.ConnectionStrings["INATTSQLConnString"].ConnectionString = connString;
config.Save();
ConfigurationManager.RefreshSection("connectionStrings");

but when i saw in my app.config, this file isn't modified.

can somebody help me, please?

Thanks

ken2k
  • 48,145
  • 10
  • 116
  • 176
user3701483
  • 15
  • 1
  • 3
  • why? Why not just open a connection using your connection string in the varibale and ignore the one in the app.config – Liam Jun 05 '14 at 14:29
  • this is it http://stackoverflow.com/questions/360024/how-do-i-set-a-connection-string-config-programatically-in-net – Ryno Coetzee Jun 05 '14 at 14:35

2 Answers2

0

I would include all different connectionString entries in Web.Config. And in code I select the one needed by its name.

It is easier to implement.

For example,

Web.Config

<connectionStrings>
  <add name="Environment1" connectionString="connString1" providerName="System.Data.SqlClient" />
  <add name="Environment2" connectionString="connString2" providerName="System.Data.SqlClient" />
  <add name="Environment3" connectionString="connString3" providerName="System.Data.SqlClient" />
  <add name="Environment4" connectionString="connString4" providerName="System.Data.SqlClient" />
</connectionStrings>

In your code, make the selection.

string connString = ConfigurationManager.ConnectionStrings[chosenName].ConnectionString;


Here is a post that discourages the use of dynamically building a connection string.

Community
  • 1
  • 1
Blaise
  • 21,314
  • 28
  • 108
  • 169
0

Put your multiple connection string by different name into App.Config file like this and use by the connection string name:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="DBCS1" providerName="System.Data.SqlClient" connectionString="Data Source=SQLEXPRESS;Initial Catalog=UserDetails;Integrated Security=SSPI;" />
  </connectionStrings>
<add name="DBCS2" providerName="System.Data.SqlClient" connectionString="Data Source=SQLEXPRESS;Initial Catalog=UserDetails;Integrated Security=SSPI;" />
  </connectionStrings>
</configuration>

Above configuratin is just for example put connection string as you needed.

Pradeep Kesharwani
  • 1,480
  • 1
  • 12
  • 21