您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > C多个项目共享配置文件
C#多个项目共享配置文件(共用一个SQL连接字符串)在我们的蓝山公司人事管理系统的项目中,员工管理EmployeeManagement和安全管理Security等项目都要用到数据库连接,考虑到可以将数据库连接字符串存储到应用程序配置文件app.config。但默认的应用程序配置文件只能在自己的项目中读取,如何实现多个项目共享一个app.config文件,这样,当数据库连接发生改变时,只需要修改应用程序配置文件app.config,而不需要重新编译程序。一、建立应用程序配置文件app.config首先,打蓝山公司人事管理解决方案,在主项目BlueHillWindows中添加应用程序配置文件app.config,其内容如下:?xmlversion=1.0encoding=utf-8?configurationconnectionStringsaddname=BlueHillConnStringconnectionString=DataSource=(local);InitialCatalog=BlueHill;UserID=BlueHill;Password=rj3101providerName=System.Data.SqlCLient//connectionStrings/configuration该连接字符串命名为BlueHillConnString,内容根据实际情况确定。编译时,会在相应的Bin文件夹生成与主程序同名的配置文件,如BlueHillWindows.exe.config,内容与app.config文件相同。发布时,只要修改BlueHillWindows.exe.config就可以修改数据库连接字符串。二、在员工管理EmployeeManagement项目中读取主项目中的配置文件读取配置文件,需要用到System..Configuration命名空间的Configuration类。首先,在EmployeeManagement项目中添加对.NET组件System..Configuration的引用。同样,在FrmNewEmployee窗体类的构造函数中,也写入同样的上述代码:publicFrmListEmployee(){InitializeComponent();//定义Configuration类对象,读取与主应用程序可执行文件相同文件夹下的配置文件System.Configuration.Configurationconfig=System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.None);//读取BlueHillConnString数据库连接字符串,并赋值给SqlConnectiong控件cnBlueHillthis.cnBlueHill.ConnectionString=config.ConnectionStrings.ConnectionStrings[BlueHillConnString].ConnectionString;}对应修改FrmListEmployee类的构造函数:publicFrmNewEmployee(){InitializeComponent();//定义Configuration类对象,读取与主应用程序可执行文件相同文件夹下的配置文件System.Configuration.Configurationconfig=System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.None);//读取BlueHillConnString数据库连接字符串,并赋值给SqlConnectiong控件cnBlueHillthis.cnBlueHill.ConnectionString=config.ConnectionStrings.ConnectionStrings[BlueHillConnString].ConnectionString;//绑定部门列表BindDepart();}publicFrmNewEmployee(intempID){InitializeComponent();//定义Configuration类对象,读取与主应用程序可执行文件相同文件夹下的配置文件System.Configuration.Configurationconfig=System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.None);//读取BlueHillConnString数据库连接字符串,并赋值给SqlConnectiong控件cnBlueHillthis.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窗体类的构造函数中,也写入同样的上述代码:publicFrmLogin(){InitializeComponent();//定义Configuration类对象,读取与主应用程序可执行文件相同文件夹下的配置文件System.Configuration.Configurationconfig=System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.None);//读取BlueHillConnString数据库连接字符串,并赋值给SqlConnectiong控件cnBlueHillthis.cnBlueHill.ConnectionString=config.ConnectionStrings.ConnectionStrings[BlueHillConnString].ConnectionString;}以后,如果在调试期间调整数据库连接字符串,修改主项目的app.config文件中对应的数据库连接字符串就要以了,应用程序无需任何修改。例如,要使用Windows身份认证,将连接字符串:addname=BlueHillConnStringconnectionString=DataSource=(local);InitialCatalog=BlueHill;UserID=BlueHill;Password=rj3101providerName=System.Data.SqlCLient/修改为:addname=BlueHillConnStringconnectionString=DataSource=(local);InitialCatalog=BlueHill;IntegratedSecurity=SSPI;providerName=System.Data.SqlCLient/如果要使用SQLServerExpress数据库,数据库example.mdf与可执行文件在同一文件夹,则可以将连接字符串改为:addname=BlueHillConnStringconnectionString=DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\example.mdf;IntegratedSecurity=True;UserInstance=TrueproviderName=System.Data.SqlCLient/如果项目已经发布,也只需要修改可执行文件夹下与可执行文件同名的.config文件中对应的内容就可以了。
本文标题:C多个项目共享配置文件
链接地址:https://www.777doc.com/doc-2908482 .html