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"); //强制刷新配置文件

 

posted @   violety  阅读(353)  评论(0编辑  收藏  举报
编辑推荐:
· 从 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)
点击右上角即可分享
微信分享提示