2012-03-29 4 views
0
私は DatabaseFactory.CreateDatabase() of DAAB

C#のコンソールがchange..CreateDatabaseを()保持しませんDatabaseFactoryで使用されるデフォルトのデータベースのためのapp.config値を上書きしようとし

が使用する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ファイルは、ConfigurationManager.RefreshSection("configuration"); 代わりにを試し



+0

Visual Studioからアプリケーションを実行していますか? –

+0

いいえ、それはコンパイルされ、スタンドアロンexeとして実行されます – user825374

答えて

0

+0

nope。今すぐこのコード行を実行すると、string connectionString = ConfigurationManager.ConnectionStrings [dbSettings.DefaultDatabase] .ConnectionString; 空のDataSourceと空のInitial_Catalogを持つ接続文字列を取得します。ユーザーIDとパスワードが正しい – user825374

関連する問題