多项目共享配置文件

来自:http://cache.baidu.com/c?m=9d78d513d99003ed4fece4690d61c0676905dd3f688c85027ea48439e4732a47501692ac53550705a3d20c6016de4f4beb802103401450c78cbe8c5dacba866f6fd6286e365ac45613a004b28e1c7e8777d501b5b81990e9aa63ccf9c5d3a8050fd7025826c6a7d71c1714bd3cb1567bf4a7ed13434811ccee3764fd53702c952947b043&p=9d3bdc15d9c841fb0be2930c460a&user=baidu&fm=sc&query=app%2Econfig%CE%C4%BC%FE%B5%C4%CE%BB%D6%C3&qid=abd241060dfc04f2&p1=10
 
 
在我们的蓝山公司人事管理系统的项目中,员工管理EmployeeManagement和安全管理Security等项目都要用到数据库连接,考虑到可以将数据库连接字符串存储到应用程序配置文件app.config。但默认的应用程序配置文件只能在自己的项目中读取,如何实现多个项目共享一个 app.config文件,这样,当数据库连接发生改变时,只需要修改应用程序配置文件app.config,而不需要重新编译程序。
一、建立应用程序配置文件app.config
首先,打蓝山公司人事管理解决方案,在主项目BlueHillWindows中添加应用程序配置文件app.config,其内容如下:
<? xml version = "1.0"encoding="utf-8" ?>
< configuration >
 < connectionStrings >
    < add name = "BlueHillConnString"connectionString="Data Source=(local);Initial Catalog=BlueHill;User ID=BlueHill;Password=rj3101"providerName="System.Data.SqlCLient"/>
 </ connectionStrings >
</ configuration >
该连接字符串命名为BlueHillConnString,内容根据实际情况确定。
编译时,会在相应的Bin文件夹生成与主程序同名的配置文件,如BlueHillWindows.exe.config,内容与 app.config文件相同。发布时,只要修改BlueHillWindows.exe.config就可以修改数据库连接字符串。
二、在员工管理EmployeeManagement 项目中读取主项目中的配置文件
读取配置文件,需要用到System..Configuration命名空间的 Configuration类。首先,在EmployeeManagement项目中添加对.NET组件System..Configuration的引用。
同样,在FrmNewEmployee窗体类的构造函数中,也写入同样的上述代码:
        public FrmListEmployee()
        {
            InitializeComponent();
            //  定义Configuration类对象,读取与主应用程序可执行文件相同文件夹下的配置文件
            System.Configuration.Configuration config = System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.None);
            //  读取BlueHillConnString数据库连接字符串,并赋值给SqlConnectiong控件cnBlueHill
            this.cnBlueHill.ConnectionString = config.ConnectionStrings.ConnectionStrings["BlueHillConnString"].ConnectionString;
   }
对应修改FrmListEmployee类的构造函数:
        public FrmNewEmployee()
        {
            InitializeComponent();
            //  定义Configuration类对象,读取与主应用程序可执行文件相同文件夹下的配置文件
            System.Configuration.Configuration config = System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.None);
            //  读取BlueHillConnString数据库连接字符串,并赋值给SqlConnectiong控件cnBlueHill
            this.cnBlueHill.ConnectionString = config.ConnectionStrings.ConnectionStrings["BlueHillConnString"].ConnectionString;
            //  绑定部门列表
            BindDepart();
        }
 
        public FrmNewEmployee(int empID)
        {
            InitializeComponent();
            //  定义Configuration类对象,读取与主应用程序可执行文件相同文件夹下的配置文件
            System.Configuration.Configuration config = System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.None);
            //  读取BlueHillConnString数据库连接字符串,并赋值给SqlConnectiong控件cnBlueHill
            this.cnBlueHill.ConnectionString = config.ConnectionStrings.ConnectionStrings["BlueHillConnString"].ConnectionString;
            //  存储要操作的员工号,并记录操作方式为更新
            this.EmployeeID = empID;
            this.Operator = OperatorType.Update;
            //  绑定员工列表和员工信息
            BindDepart();
            BindEmployee(this.EmployeeID);
            this.Text = " 修改员工信息" ;
            tbPassword.CausesValidation = false; tbPassword.Enabled = false;
   }
三、在安全管理Security 项目中读取主项目中的配置文件
与第二步类似,在Security项目中添加对.NET组件System..Configuration的引用。
同样,在FrmLogin窗体类的构造函数中,也写入同样的上述代码:
        public FrmLogin()
        {
            InitializeComponent();
            //  定义Configuration类对象,读取与主应用程序可执行文件相同文件夹下的配置文件
            System.Configuration.Configuration config = System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.None);
            //  读取BlueHillConnString数据库连接字符串,并赋值给SqlConnectiong控件cnBlueHill
            this.cnBlueHill.ConnectionString = config.ConnectionStrings.ConnectionStrings["BlueHillConnString"].ConnectionString;
   }
以后,如果在调试期间调整数据库连接字符串,修改主项目的 app.config文件中对应的数据库连接字符串就要以了,应用程序无需任何修改。例如,要使用Windows身份认证,将连接字符串:
    < add name = "BlueHillConnString"connectionString="Data Source=(local);Initial Catalog=BlueHill;User ID=BlueHill;Password=rj3101"providerName="System.Data.SqlCLient"/>
修改为:
    < add name = "BlueHillConnString"connectionString="Data Source=(local);Initial Catalog=BlueHill;  Integrated Security=SSPI; "providerName="System.Data.SqlCLient"/>
如果要使用SQL Server Express数据库,数据库example.mdf与可执行文件在同一文件夹,则可以将连接字符串改为:
< add name = "BlueHillConnString"connectionString="  Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\example.mdf;Integrated Security=True;User Instance=True "providerName="System.Data.SqlCLient"/>
如果项目已经发布,也只需要修改可执行文件夹下与可执行文件同名的.config文件中对应的内容就可以了。

转载于:https://www.cnblogs.com/2008freestyle/archive/2012/03/18/2404994.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值