2013-07-31 64 views
2

節省我有這樣的app.config:配置管理器是不是在app.config中

<?xml version="1.0"?> 
<configuration> 
<configSections> 
</configSections> 
<connectionStrings> 
    <add name="conexx" connectionString="Data Source=192.168.1.2 ;Initial Catalog =ifdcontroladoria3 ;uid =sa;pwd = admin2012" providerName="System.Data.SqlClient" /> 
</connectionStrings> 
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client"/></startup></configuration> 

餘米試圖更新此connectring使用本C#:

coneydstr = @"Data Source=" + comboBox1.Text + ";Initial Catalog =" + cmbBancos.Text + ";uid =" + txtUsuario.Text + ";pwd =" + txtPassword.Text; 
     try 
     { coneyd.ConnectionString = coneydstr; 
      coneyd.Open(); 
      funciona = true; 
      lblStringSalida.Text = coneydstr; 
     } 
     catch (Exception ex) 
     { MessageBox.Show(coneyd + ex.Message.ToString()); } 

     if (funciona) 
     { 
      Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
      config.ConnectionStrings.ConnectionStrings["conexx"].ConnectionString = coneydstr; 
      config.Save(); 
     } 

但不做更新,

using System.Configuration; 

是在頭部和參考,有什麼不好?????

我有寫錯的問題,我想存儲ConnectionString的地方,也許的app.config或其他文件,並更改字符串中的另一個安裝或則當服務器或用戶的變化。什麼正確的方法來做到這一點?

+0

你是什麼意思的「沒有更新」? –

回答

5

那麼,最有可能您的問題是,你看錯誤的文件。看看在調試器中config.FilePath屬性 - 它會告訴你確切地其中文件你正在處理的此時此地。

當您運行在Visual Studio中的代碼,你的代碼將改變你的Yourapplication.exe.config目錄project\bin\debug裏面 - 它會變化app.config在項目目錄!

所以當你運行你的代碼 - 在config.Save()之後,看看你的項目的\bin\debug目錄和裏面的配置文件 - 那些值是否正確更新?

+1

然後在安裝程序時出現類似的問題 - 「普通用戶」不允許隨意更改程序文件中的內容。然後會奇蹟般地在用戶的文件夾中出現一個新的配置文件(不記得路徑)。使調試更加困難;對於每次安裝,此路徑的最後一個文件夾隨僞隨機變化。 – LosManos

+0

這不是僞隨機,從[應用程序域的證據性質]產生(http://social.msdn.microsoft.com/Forums/vstudio/en-US/4f3e1f68-d19c-4a43-a650-bd4afa9c4593/c-application-其設置 - 在那裏 - 是 - 它們存儲)。如果你明確地設置它,你可以控制它。 –