所以这是我的第一个问题和我的第一个 C# 程序:
我需要可以永久更改连接字符串的函数。
我的程序有这样的结构:主表单是Form1
,当我点击按钮时Options
,我从 - 获取新的Form3
,用户可以登录(密码保护更改选项),如果登录成功,我创建新表单 - Form4
。在 的构造函数中Form4
,我SqlConnection
从Form1
. 我想通过单击按钮更改我的数据库名称,所以这里是代码:
var config = ConfigurationManager
.OpenExeConfiguration(ConfigurationUserLevel.None);
var connectionStringsSection = (ConnectionStringsSection)config
.GetSection("connectionStrings");
var x = connectionStringsSection
.ConnectionStrings["App.Properties.Settings.ppsConnectionString"]
.ConnectionString;
String[] words = x.Split(';');
words[1] = "Initial Catalog="+textBoxDB.Text;
x=String.Join(";", words);
connectionStringsSection
.ConnectionStrings["App.Properties.Settings.ppsConnectionString"]
.ConnectionString = x;
//above, this variable x in debug mode looks right
//I read this line below should update file, so change would be permamently
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("connectionStrings");
但它不会改变任何东西,我不知道如何更改此设置文件,以便用户可以更改数据库名称,并且当他们重新启动应用程序时,他们应该有这个新的更改连接字符串。
编辑 :
感谢您的回复,事实证明我应该从 bin/Release .exe 版本运行此代码,而不是在 VS 中的 Debug 下运行,它实际上更改了此配置文件。