zoukankan      html  css  js  c++  java
  • 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"); //强制刷新配置文件
  • 相关阅读:
    js在当前时间上加分钟数得到新的时间
    (转)@Autowired(required=false)注入注意的问题
    Java代替if和switch的方法(记录一下)
    windows下RocketMQ的安装部署
    RocketMQ在windows环境下的安装(转)
    简单说下二维数组
    JAVA-单例模式的几种实现方式
    (转)mybatis一级缓存二级缓存
    MySql安装后在服务管理器里边找不到MySql服务项的解决办法(win10)
    JAVA字符串的替换replace、replaceAll、replaceFirst的区别解析。
  • 原文地址:https://www.cnblogs.com/Violety/p/10208839.html
Copyright © 2011-2022 走看看