C# 多重專案共用設定檔(共用一個SQL連接字串)

來源:互聯網
上載者:User
在我們的藍山公司人事管理系統的項目中,員工管理EmployeeManagement和安全管理Security等項目都要用到資料庫連接,考慮到可以將資料庫連接字串儲存到應用程式設定檔app.config。但預設的應用程式設定檔只能在自己的項目中讀取,如何?多重專案共用一個 app.config檔案,這樣,當資料庫連接發生改變時,只需要修改應用程式設定檔app.config,而不需要重新編譯器。 一、建立應用程式設定檔app.config首先,打藍山公司人事管理解決方案,在主專案BlueHillWindows中添加應用程式設定檔app.config,其內容如下:
<?xmlversion="1.0"encoding="utf-8" ?><configuration> <connectionStrings>    <addname="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身份認證,將連接字串:    <addname="BlueHillConnString"connectionString="Data Source=(local);Initial Catalog=BlueHill;User ID=BlueHill;Password=rj3101"providerName="System.Data.SqlCLient"/>修改為:    <addname="BlueHillConnString"connectionString="Data Source=(local);Initial Catalog=BlueHill; Integrated Security=SSPI;"providerName="System.Data.SqlCLient"/>如果要使用SQL Server Express資料庫,資料庫example.mdf與可執行檔在同一檔案夾,則可以將連接字串改為:<addname="BlueHillConnString"connectionString=" Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\example.mdf;Integrated Security=True;User Instance=True"providerName="System.Data.SqlCLient"/>如果項目已經發布,也只需要修改可執行資料夾下與可執行檔同名的.config檔案中對應的內容就可以了。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.