我正在尝试以编程方式更新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");
有人能看到我做错了吗?
答案 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之外运行它,请重新启动应用程序。