ConfigurationManager不在App.config中保存ConnectionString

时间:2014-02-14 13:13:27

标签: c# winforms

我正在尝试以编程方式更新App.config文件中的连接字符串。

我可以完美地读取该值,但由于某些原因我似乎无法更新该值。

我的App.config看起来像这样:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<connectionStrings>
<add name="TPAPI.Properties.Settings.TruePotentialConnectionString"
    connectionString="Data Source=(local);Initial Catalog=TruePotential;User ID=sa;Password=password"
    providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>

我可以用这个来读它:

txtConnectionString.Text = System.Configuration.ConfigurationManager.ConnectionStrings["TPAPI.Properties.Settings.TruePotentialConnectionString"].ConnectionString;

但是当我尝试写一个新值时,没有任何反应。

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
        config.ConnectionStrings.ConnectionStrings["TPAPI.Properties.Settings.TruePotentialConnectionString"].ConnectionString = txtConnectionString.Text;
        config.Save(ConfigurationSaveMode.Modified, true);
        ConfigurationManager.RefreshSection("connectionStrings");

有人能看到我做错了吗?

1 个答案:

答案 0 :(得分:3)

我不确定这是否与你所遇到的问题相同,但如果你想,你可以暂时阅读,这不是我自己的答案。

积分:
https://stackoverflow.com/a/13133034/3239917

  

我认为发生的事情是你在Visual Studio中测试它   将App.Config复制到Debug / Release目录并重命名   YourApplication.vshost.exe.config每次启动时都会重置   你的申请。尝试在Visual Studio外部运行可执行文件   这将使用YourApplication.exe.config文件,看看是否   适合你。您的代码对我有用并保留您的更改   如果我在Visual Studio之外运行它,请重新启动应用程序。

相关问题