如何在 C# 中更新 app.config 连接字符串数据源值? [英] How can i update app.config connectionstring Datasource value in C#?
本文介绍了如何在 C# 中更新 app.config 连接字符串数据源值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.ConnectionStrings.ConnectionStrings["MyConnectionString",String.Format("DataSource={0};")].ConnectionString=textBox1.Text;
config.Save(ConfigurationSaveMode.Modified, true);
ConfigurationManager.RefreshSection("connectionStrings");
我在第二行遇到了问题.我似乎无法获得正确的语法.如您所见,我只想更新 DataSource 值.例如,如果当前值是 Data Source=PC001\SQL2008EXPRESS,我希望它更新为客户端在 textBox1 中输入的内容.
I'm having trouble at line two. I cant seem to get the syntax correct. As you can see, i only want to update the DataSource value only. For example, if current value is Data Source=PC001\SQL2008EXPRESS, i want it to be updated to what the client enters in textBox1.
连接字符串示例
<add name="ERPDatabaseTables" connectionString="metadata=res://*/ERPTables.csdl|res://*/ERPTables.ssdl|res://*/ERPTables.msl;provider=System.Data.SqlClient;provider connection string="Data Source=PC001\SQL2008EXPRESS;Initial Catalog=MyDatabase.mdf;Integrated Security=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient"/>
所以只想更新Data Source=PC001\SQL2008EXPRESS部分
推荐答案
你真正想要的是:
Configuration config =
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
// Because it's an EF connection string it's not a normal connection string
// so we pull it into the EntityConnectionStringBuilder instead
EntityConnectionStringBuilder efb =
new EntityConnectionStringBuilder(
config.ConnectionStrings.ConnectionStrings["ERPDatabaseTables"]
.ConnectionString);
// Then we extract the actual underlying provider connection string
SqlConnectionStringBuilder sqb =
new SqlConnectionStringBuilder(efb.ProviderConnectionString);
// Now we can set the datasource
sqb.DataSource = textBox1.Text;
// Pop it back into the EntityConnectionStringBuilder
efb.ProviderConnectionString = sqb.ConnectionString;
// And update...
config.ConnectionStrings.ConnectionStrings["ERPDatabaseTables"]
.ConnectionString = efb.ConnectionString;
config.Save(ConfigurationSaveMode.Modified, true);
ConfigurationManager.RefreshSection("connectionStrings");
假设:
您的 EF 连接字符串存在于应用的配置文件中
Your EF connection string exists in the app's config file
您有对 System.Data.Entity
这篇关于如何在 C# 中更新 app.config 连接字符串数据源值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文