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

BS Web窗体 动态修改WebConfig文件参数及数据库链接串的更多相关文章

  1. [置顶] c# asp.net 修改webconfig文件 配置

    c# asp.net 修改webconfig文件 配置 #region 修改config文件 /// <summary> /// 修改config文件(AppSetting节点) /// ...

  2. 运行时动态修改webconfig

    网站运行时,如果直接手动修改webconfig.xml,会造成线程池重启,对于PV大的网站来说风险是很大的,并且如果有多台服务器,逐台修改也会造成数据不一致. .NET 2.0后可以通过代码修改web ...

  3. oracle通过修改控制文件scn推进数据库scn

    数据库当前scn 代码如下 复制代码 idle> select checkpoint_change# from v$database; CHECKPOINT_CHANGE#----------- ...

  4. maven 根据P参数值打包动态修改properties文件中值或一定properties

    需求:由于最近开发clover项目 ,没有使用spring,更没有使用任何框架,而使用J2EE的web工程,所以连接ZK和MongoDB.Redis等服务器需用指定properties文件, 而目前公 ...

  5. jmeter动态修改线程组参数

    jmeter非gui模式修改线程属性进行性能测试 在使用JMeter进行性能测试自动化时,如果按照平常的非Gui模式就是脚本每次修改参数都需要在gui模式下修改保存之后,然后在非gui模式之后运行,这 ...

  6. c# asp.net 修改webconfig文件 配置

    #region 修改config文件 /// <summary> /// 修改config文件(AppSetting节点) /// </summary> /// <par ...

  7. 动态修改PE文件图标(使用UpdateResource API函数)

    PE文件的图标存储在资源文件中,而操作资源要用到的API函数就是UpdateResource首先我们需要先了解一下ICO格式,参考资料:http://www.moon-soft.com/program ...

  8. 动态修改css文件中,具体的class中的个别属性值。

    function setStyleSheetObjCssClassProperty(pStyleSheetObj, pSelectorText, pProperty, pValue) { var pS ...

  9. 使用C#创建winform窗体,修改debugwen文件夹下exe应用程序的默认图标

    在做一个接口程序是遇到的问题,记录一下: 在解决方案资源管理器上,右击项目名称——属性——点击图标和清单右边的的按纽——去Debug文件夹中找到自己的图标,打开.然后保存.

随机推荐

  1. VS2010 VC++ 项目添加引用 出现 Internal CPS Error问题原因及解决办法

    在VS2010 VC++ 项目添加引用时,有时会出现Internal CPS Error错误,提示信息: 'Internal CPS Error: We couldn't find the exist ...

  2. Python操作dict时避免出现KeyError的几种方法

    见原文:https://www.polarxiong.com/archives/Python-%E6%93%8D%E4%BD%9Cdict%E6%97%B6%E9%81%BF%E5%85%8D%E5% ...

  3. 2016年终总结--一个Python程序猿的跨界之旅

    时间过得真快.感觉15年年终总结刚写完,16年就结束了.看了blog,16年就写了可怜的8篇,对我来说16年还算顺风顺水. 真正可能出乎意料的是年底我离开了呆了2年半的龙图游戏,临时放弃了用了3年半的 ...

  4. JAVA Selenium PHONCOMJS 获取js动态生成完整网页

    首先需要在maven的pom.xml中包含以下依赖 <dependency> <groupId>com.github.detro</groupId> <art ...

  5. 数学图形(2.7)sphere sine wave

    在球上以SIN曲线的轨迹游走. #http://www.mathcurve.com/courbes3d/couronnetangentoidale/couronnetangentoidale.shtm ...

  6. 【OpenMesh】Training:Getting Started with OpenMesh

    内容出自236329 - Digital Geometry Processing, Spring2013 - Announcements上的OpenMesh Assignment感觉比较好,适合刚开始 ...

  7. eclipse 添加 Courier New 字体

    下载了eclipse3.7,发现这个版本默认的字体不是Courier New,后来通过eclipse->windows->preferences->general->apper ...

  8. 利用kettle中的JS来完成ETL数据校验

    最近参与了一个信托行业的BI项目,由于信托业务系统设计的问题,很多都是用户手工录入的数据,也有一些是需要分析的但是用户没有录入的数据,针对这样的数据质量,我们就要在ETL抽取的过程中来对数据流进行校验 ...

  9. FrameWork数据权限浅析2之基于用户的配置表实现行级数据安全

    在上一篇笔记中我已经说了如何利用FM自带的机制配合我们已经通过验证的用户空间的组来实现行级数据安全的控制,但是由于上一个方法存在的缺点是以后如果对该对象增加基于用户或者角色的访问权限就需要开发人员去F ...

  10. powershell 远程重启/关闭服务器

    powershell 远程重启/关闭服务器 #启动winrm PS C:\Windows\system32> winrm quickconfig -q #设置信任主机 PS C:\Windows ...