C# winform 想动态修改config文件,config里面没有变呢
在网上找了好多都大同小异,appsettings和ConnectionStrings两种,两种都试了还是没反应,也没报错,可以查询到但是删除和添加修改都不起作用,不知道是...
在网上找了好多都大同小异,appsettings和ConnectionStrings两种,两种都试了还是没反应,也没报错,可以查询到但是删除和添加修改都不起作用,不知道是怎么回事,跪求大神解答
这是ConnectionStrings的
///<summary>
///更新连接字符串
///</summary>
///<param name="newName">连接字符串名称</param>
///<param name="newConString">连接字符串内容</param>
///<param name="newProviderName">数据提供程序名称</param>
public static void UpdateConnectionStringsConfig(string newName, string newConString, string newProviderName)
{
//指定config文件读取
string file = System.Windows.Forms.Application.ExecutablePath;
Configuration config = ConfigurationManager.OpenExeConfiguration(file);
bool exist = false; //记录该连接串是否已经存在
//如果要更改的连接串已经存在
if (config.ConnectionStrings.ConnectionStrings[newName] != null)
{
exist = true;
}
// 如果连接串已存在,首先删除它
if (exist)
{
config.ConnectionStrings.ConnectionStrings.Remove(newName);
}
//新建一个连接字符串实例
ConnectionStringSettings mySettings =
new ConnectionStringSettings(newName, newConString, newProviderName);
// 将新的连接串添加到配置文件中.
config.ConnectionStrings.ConnectionStrings.Add(mySettings);
// 保存对配置文件所作的更改
config.Save(ConfigurationSaveMode.Modified);
// 强制重新载入配置文件的ConnectionStrings配置节
ConfigurationManager.RefreshSection("ConnectionStrings");
}
这是appsettings的
Configuration config =
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
KeyValueConfigurationElement keyValue = new KeyValueConfigurationElement(connectName, connectString);
AppSettingsSection appsetings = config.AppSettings;
appsetings.Settings.Add(keyValue);
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection(connectName); 展开
这是ConnectionStrings的
///<summary>
///更新连接字符串
///</summary>
///<param name="newName">连接字符串名称</param>
///<param name="newConString">连接字符串内容</param>
///<param name="newProviderName">数据提供程序名称</param>
public static void UpdateConnectionStringsConfig(string newName, string newConString, string newProviderName)
{
//指定config文件读取
string file = System.Windows.Forms.Application.ExecutablePath;
Configuration config = ConfigurationManager.OpenExeConfiguration(file);
bool exist = false; //记录该连接串是否已经存在
//如果要更改的连接串已经存在
if (config.ConnectionStrings.ConnectionStrings[newName] != null)
{
exist = true;
}
// 如果连接串已存在,首先删除它
if (exist)
{
config.ConnectionStrings.ConnectionStrings.Remove(newName);
}
//新建一个连接字符串实例
ConnectionStringSettings mySettings =
new ConnectionStringSettings(newName, newConString, newProviderName);
// 将新的连接串添加到配置文件中.
config.ConnectionStrings.ConnectionStrings.Add(mySettings);
// 保存对配置文件所作的更改
config.Save(ConfigurationSaveMode.Modified);
// 强制重新载入配置文件的ConnectionStrings配置节
ConfigurationManager.RefreshSection("ConnectionStrings");
}
这是appsettings的
Configuration config =
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
KeyValueConfigurationElement keyValue = new KeyValueConfigurationElement(connectName, connectString);
AppSettingsSection appsetings = config.AppSettings;
appsetings.Settings.Add(keyValue);
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection(connectName); 展开
1个回答
展开全部
额。。。你是要改原始配置文件?
你上面的代码改的是xx.vshost.exe.config(而不是xx.exe.config),Configuration没有提供直接改原始配置文件的方法,如果你非要改,只能用File去处理这个文件(而且只能下次才生效了,因为这次启动后,程序读取的就只有xx.vshost.exe.config
你上面的代码改的是xx.vshost.exe.config(而不是xx.exe.config),Configuration没有提供直接改原始配置文件的方法,如果你非要改,只能用File去处理这个文件(而且只能下次才生效了,因为这次启动后,程序读取的就只有xx.vshost.exe.config
追问
那是不是就要用XML处理节点?
追答
额。。。既然是随意写了,你用xml处理也行,直接读取所有文本然后在里面改了再存回去也行
这都随你写了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询