BS Web窗体 动态修改WebConfig文件参数及数据库链接串
WebConfig操作帮助类
/// /// ConfigurationOperator 的摘要说明 /// public class ConfigurationOperator : IDisposable { private Configuration config; public ConfigurationOperator() : this(HttpContext.Current.Request.ApplicationPath) { } public ConfigurationOperator(string path) { // Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~"); config = WebConfigurationManager.OpenWebConfiguration(path); } /// /// 设置应用程序配置节点,如果已经存在此节点,则会修改该节点的值,否则添加此节点 /// /// 节点名称 /// 节点值 public void SetAppSetting(string key, string value) { AppSettingsSection appSetting = (AppSettingsSection)config.GetSection("appSettings"); if (appSetting.Settings[key] == null)//如果不存在此节点,则添加 { appSetting.Settings.Add(key, value); } else//如果存在此节点,则修改 { appSetting.Settings[key].Value = value; } } /// /// 设置数据库连接字符串节点,如果不存在此节点,则会添加此节点及对应的值,存在则修改 /// /// 节点名称 /// 节点值 public void SetConnectionString(string key, string connectionString) { ConnectionStringsSection connectionSetting = (ConnectionStringsSection)config.GetSection("connectionStrings"); if (connectionSetting.ConnectionStrings[key] == null)//如果不存在此节点,则添加 { ConnectionStringSettings connectionStringSettings = new ConnectionStringSettings(key, connectionString); connectionSetting.ConnectionStrings.Add(connectionStringSettings); } else//如果存在此节点,则修改 { connectionSetting.ConnectionStrings[key].ConnectionString = connectionString; } } /// /// 保存所作的修改 /// public void Save() { config.Save(); config = null; } public void Dispose() { if (config != null) { config.Save(); } } /// <summary> /// 根据数据库连接串,测试是否连接成功 /// </summary> /// <param name="connText"></param> /// <returns></returns> public string ResultText(string connText) { SqlConnection conn = new SqlConnection(); string txtValue = string.Empty; using (SqlConnection connection = new SqlConnection(connText)) { try { connection.Open(); } catch (Exception ex) { txtValue = ex.ToString(); } return txtValue; } } }
Web窗体.CS后台调用方法
/// <summary> /// 数据库连接串更新 /// </summary> /// <param name="name">数据库连接串名称</param> /// <param name="connStr">数据库连接(加密)</param> public static void UpdateConnectionStrings(string name,string connStr) { //调用 ConfigurationOperator cfgOper = new ConfigurationOperator(); cfgOper.SetConnectionString(name, connStr);//添加一个节点,如果有就修改 cfgOper.Save(); cfgOper.Dispose(); } /// <summary> /// 参数更新 /// </summary> /// <param name="key">参数名称</param> /// <param name="value">参数值</param> public static void UpdateAppSettings(string key,string value) { //调用 ConfigurationOperator cfgOper = new ConfigurationOperator(); cfgOper.SetAppSetting(key, value);//添加一个节点,如果有就修改 cfgOper.Save(); cfgOper.Dispose(); }
参数获取
ConfigurationManager.AppSettings["canshu1"]
数据库链接获取
ConfigurationManager.ConnectionStrings["conStr"].ConnectionString
其他:
var config= ConfigurationManager.AppSettings["minAmount"];//获取值 Configuration cfa = WebConfigurationManager.OpenWebConfiguration("~"); cfa.AppSettings.Settings.Add("key", "value");//添加值 cfa.AppSettings.Settings["redRule"].Value = "-1";//修改值 cfa.Save();//保存 //ConfigurationManager.RefreshSection("appSettings"); //强制刷新配置文件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)