2011-11-11 84 views
0

我有一個配置文件和輪詢服務在輪詢服務中具有不同的方法。我希望發生的是,當它擊中一定的方法在投票站服務,我想從配置文件來更改連接字符串:在運行時更改連接字符串

<add name="Entity" connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=dev;Initial Catalog=DB;Persist Security Info=True;User ID=a;Password=asdf;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /> 

這樣:

<add name="Entity" connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=dev_Test;Initial Catalog=DB_Test;Persist Security Info=True;User ID=a;Password=asdf;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /> 

請協助。

謝謝。

回答

0

如果你真的想改變app.config文件,你可以這樣做:

var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 

    config.ConnectionStrings.ConnectionStrings["Entity"].ConnectionString = YourNewConnectionString; 
    config.Save(); 

如果你只需要改變的數據源是內部連接字符串,你不想解析實體連接字符串,您可以使用連接字符串構建器,如下所示:

var entityBuilder = new EntityConnectionStringBuilder(ConfigurationManager.ConnectionStrings["Entity"].ConnectionString); 
var sqlBuilder = new SqlConnectionStringBuilder(entityBuilder.ProviderConnectionString); 

sqlBuilder.DataSource = "dev_Test"; 

entityBuilder.ProviderConnectionString = sqlBuilder.ToString(); 

var connectionString = entityBuilder.ToString(); 
相關問題