【发布时间】:2017-08-12 15:01:03
【问题描述】:
我为连接设置创建了一个表单,用户可以在其中更新服务器名称、数据库以及用户 ID 和密码。我已将连接字符串存储在 app.config 文件中。
我的问题是,如何在运行时更新app.config文件中的连接字符串以及如何在第一时间通过表单上的文本框更改连接字符串的信息,文本框将显示信息第一次后的服务器名、id、密码
这里是我的 app.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="Data123.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<connectionStrings>
<add name="Data123Entities" connectionString="metadata=res://*/Data123DB.csdl|res://*/Data123DB.ssdl|res://*/Data123DB.msl;provider=System.Data.SqlClient;provider connection string="data source=nguyenduyhai;initial catalog=Data123;persist security info=True;user id=sa;password=1234567;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
<!--<add name="Data123Entities" connectionString="metadata=res://*/Data123DB.csdl|res://*/Data123DB.ssdl|res://*/Data123DB.msl;provider=System.Data.SqlClient;provider connection string="data source=NGUYENDUYHAI\SQLEXPRESS;initial catalog=Data123;persist security info=True;user id=sa;password=1234567;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />-->
</connectionStrings>
</configuration>
这里是我正在尝试但不起作用的代码,请帮助我
void saveconect(string address,string id,string pass)
{
var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var connectionStringsSection = (ConnectionStringsSection)config.GetSection("connectionStrings");
connectionStringsSection.ConnectionStrings["Data123Entities"].ConnectionString = "data source=" + address + ";initial catalog=" + "Data123" + ";user id=" + id + ";password=" + pass + "";
config.Save(ConfigurationSaveMode.Modified, true);
ConfigurationManager.RefreshSection("connectionStrings");
}
private void buttonUpdate_Click(object sender, EventArgs e)
{
saveconect(textboxServerAddress.Text, textBoxUserID.Text, textBoxPassword.Text);
}
【问题讨论】:
-
从配置中读取很容易,但使用 Configuration Manager 命名空间写入它们总是很麻烦。直接使用 XML 即可:stackoverflow.com/a/37163251/495455
-
你能指导我详细一点吗,如果你能指导我,我很感激
标签: c# winforms connection-string app-config