配置独立的数据库连接配置文件

我们需要把数据库连接独立的配置出来,以便我们使用

1、新建一个类文件,名称随意,不过最好是以Handler结尾的,因为要继承IConfigurationSectionHandler

 1 public class ConnHandler : IConfigurationSectionHandler
 2     {
 3
 4         const string StrFormat = "server={0};database={1};uid={2};pwd={3}";
 5
 6
 7         #region IConfigurationSectionHandler 成员
 8
 9         public object Create(object parent, object configContext, XmlNode node)
10         {
11             Hashtable tb = new Hashtable();
12
13             foreach (XmlNode xn in node.ChildNodes)
14             {
15                 if (xn.NodeType == XmlNodeType.Element)
16                 {              //JhEncrypt.Decrypt是自定义的解密算法,至于你要怎么加密那是你的事
17                     string servre = JhEncrypt.Decrypt(xn.SelectNodes("server")[0].InnerText);
18                     string database = JhEncrypt.Decrypt(xn.SelectNodes("database")[0].InnerText);
19                     string user = JhEncrypt.Decrypt(xn.SelectNodes("user")[0].InnerText);
20                     string password = JhEncrypt.Decrypt(xn.SelectNodes("password")[0].InnerText);
21                     tb.Add(xn.Name, string.Format(StrFormat, servre, database, user, password));
22                 }
23             }
24             return tb;
25
26         }
27
28         #endregion
29     }

2、大家已经看到了,这需要定义一个xml文件了,然后xml文件需要有server, database, user, password节点,我们暂时把xml文件命名为“ConnDB.Config”

1 <ConnDB>
2   <DB>
3     <server>要加密的数据库实例</server>
4     <database>要加密的数据库</database>
5     <user>要加密的用户名</user>
6     <password>要加密的密码</password>
7   </DB>
8 </ConnDB>

3、该去Web.Config添加自定义的Section了

1 <configSections>
2     <section name="ConnDB" type="custom.ConnHandler"/>
3 </configSections>
4 <ConnDB configSource="ConnDB.config"/>

新建的section的Name一定要和下面声明的名字对应,type是命名空间.文件夹名称(可忽略).类名

下面声明的section配置节的configSource是新建的xml文件的名称

4、使用

页面加载的时候会读取web.config中自定义section配置节的内容,然后执行自定义Handler的Create方法从xml获取连接字符串内容存入HashTable中

调用的时候我们只要使用下面这句就可以从section中获取数据库连接字符串

Hashtable.Synchronized((Hashtable)ConfigurationManager.GetSection("ConnDB"));

Hashtable.Synchronized是为了线程安全考虑,

当然你也可以直接使用ConfigurationManager.GetSection("ConnDB")获取一个object对象转化为string

前提是你的xml中只有一个父节点下的子节点

时间: 2024-11-15 20:27:19

配置独立的数据库连接配置文件的相关文章

Spring3.x中配置DBCP2.0数据库连接池

maven工程pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0"      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0      http://maven.apache.org/maven-v4_0_0.xs

CentOS6.X下安装配置独立SVN服务器|Subversion server

Hi 大家好,我是钟义林,今天我们来安装一个Subversion服务吧,Subversion server其实就我们日常说的SVN服务,Subversion(简称SVN,svn),一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控***务已从CVS转移到Subversion.svn服务器有2种运行方式:独立服务器和借助apache运行.下面我安装独立SVN 首先,清除一下yum的缓存吧,yum clean  all [一]安装

NHibernate4使用Oracle.ManagedDataAccess.dll连接oracle及配置多个数据库连接

NHibernate数据库配置参数在hibernate.cfg.xml中 <?xml version="1.0" encoding="utf-8"?> <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> <session-factory name="ora10gFactory"> <!--<prop

配置独立于系统的PYTHON环境

配置独立于系统的PYTHON环境 python 当前用户包 一种解决方案是在利用本机的python环境的基础上,将python的包安装在当前user的.local文件夹下 一共有两种方式来实现pip的时候安装到当前user 设置pip配置文件 pip.conf 一种是在~/.pip文件夹下的pip配置文件pip.conf中设置 加入 [install] install-option=--prefix=~/.local 相当于每次在执行 # pip install package 命令的时候在 i

nginx环境下配置nagiosQL-关于nagiosql配置文件

接上文:nginx环境下配置nagios-关于nginx.conf nagiosql文件应该处于conf/domain/目录下 nagiosql配置如下: 1 server 2 { 3         listen       8088; 4         server_name  192.168.44.44; 5         index index.html index.htm index.php; 6         root  /usr/local/nagios/nagiosql/;

nginx环境下配置nagios-关于nagios配置文件nginx.conf

接上文:nginx环境下配置nagios-关于nginx.conf 配置如下: 1 server 2 { 3         listen       80; 4         server_name  192.168.44.44; 5         index index.html index.htm index.php; 6         root  /usr/local/nagios/share; 7         auth_basic "Nagios Access"; 

spring中 context:property-placeholder 导入多个独立的 .properties配置文件

spring中 context:property-placeholder 导入多个独立的 .properties配置文件? Spring容器采用反射扫描的发现机制,在探测到Spring容器中有一个 org.springframework.beans.factory.config.PropertyPlaceholderConfigurer的 Bean就会停止对剩余PropertyPlaceholderConfigurer的扫描(Spring 3.1已经使用PropertySourcesPlaceh

CentOS6.X下安装配置独立SVN服务器Subversion server

Subversion(简称SVN,svn),一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控***务已从CVS转移到Subversion.svn服务器有2种运行方式:独立服务器和借助apache运行.下面我安装独立SVN 首先,清除一下yum的缓存吧,yum clean all [一]安装 subversion yum install subversion subversion-devel 然后选择y(yes)确认安装,当然

基础入门_Python-模块和包.深入Celery之应用配置/独立模块配置实践?

配置简介: 说明: Celery的配置文件非常强大,支持在应用上设置,也可以使用一个独立的配置模块,具体需要调整的默认选项可通过http://docs.jinkan.org/docs/celery/configuration.html#configuration 获取. # 方式一 : 直接在应用上设置,通过app.conf.update可一次性设置多个选项,常用于小型项目 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date    : 20