2012-03-29 20 views
0

我需要重寫由DatabaseFactory.CreateDatabase() of DAABC#控制檯試圖覆蓋由DatabaseFactory使用的默認數據庫在app.config值不保持change..CreateDatabase()

使用在App.config的DefaultDatabase值我有下面的代碼,它表明更改成功,但是當我稍後在代碼中引用默認數據庫時,它不再具有由下面的代碼保存的更改。 無論是在調試模式下還是作爲編譯好的exe,都會發生這種情況。

Database db = DatabaseFactory.CreateDatabase(); 

代碼改變的app.config

 Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
      var dbSettings = (DatabaseSettings)ConfigurationManager.GetSection("dataConfiguration"); 

     string connectionString = ConfigurationManager.ConnectionStrings[dbSettings.DefaultDatabase].ConnectionString; 

     connectionString = connectionString.Replace("DATABASETOREPLACE", dstuff.Database).Replace("SERVERTOREPLACE", dstuff.Server); 

     config.ConnectionStrings.ConnectionStrings[dbSettings.DefaultDatabase].ConnectionString = connectionString; 

     config.Save(ConfigurationSaveMode.Modified, true); 
     ConfigurationManager.RefreshSection("connectionStrings"); 

的app.config值



+0

你是否從Visual Studio運行你的應用程序? – 2012-03-29 15:24:08

+0

不,它是作爲獨立的exe編譯並運行的 – user825374 2012-03-29 15:33:19

回答

0

嘗試ConfigurationManager.RefreshSection("configuration"); 代替ConfigurationManager.RefreshSection("connectionStrings");

+0

nope。現在當我執行下面這行代碼時:string connectionString = ConfigurationManager.ConnectionStrings [dbSettings.DefaultDatabase] .ConnectionString; 我得到一個帶有空數據源和空Initial_Catalog的連接字符串。用戶名和密碼是正確的 – user825374 2012-03-29 20:00:37