2014-02-20 67 views
2

永久地更改連接字符串我想對我正在開發的程序的一些幫助,我希望用戶能夠從我已開發的窗體設置數據庫連接字符串。我見過很多關於這方面的文章,包括很多關於堆棧溢出的問題,但都沒有成功,但它們都沒有將連接永久地寫入到app.config文件中,這意味着當應用程序關閉時,連接字符串會保留它以前的值(在調試過程中)我想知道是否有辦法解決這個問題。永久更改app.config中的連接字符串從代碼

我已經嘗試過這樣的: How can i update app.config connectionstring Datasource value in C#?

而這正是我目前正在使用:

http://www.codeproject.com/Questions/388444/How-change-connection-string-dynamically-in-csharp 見配液2

+2

請嘗試以下答案:http://stackoverflow.com/a/1357453/1661209 – Max

+2

如果此問題僅用於調試,那麼這是因爲配置文件在您構建項目時更新,並且此問題將不再發生時你部署它。 –

+0

您需要重寫配置文件,然後重新啓動應用程序。 –

回答

1

假設這是所謂的WindowsFormsApplication1一個表格/控制檯應用程序:

在調試模式下在Visual Studio中運行應用程序時,將要更新的文件是:

bin\Debug\WindowsFormsApplication1.vshost.exe.Config 

每次您終止調試會話,然後該文件將恢復到任何被包含在項目的app.config文件。

有這種行爲的原因,我現在沒有時間解釋。

當您單獨運行應用程序(即不在Visual Studio中)時,隨您的應用程序二進制文件一起部署的app.config文件將成爲被更新的文件。

例如,我複製我的bin\Release(不包括任何*.vshost.*文件)文件夾的輸出到另一個目錄項目結構外,推出了應用程序,果然我的配置更改都得到保存到app.config

+0

Oho !!感謝我現在得到它,所以我不能在調試模式下真正永久更新我的項目app.config文件中的設置。 –

+0

這似乎是這種情況。在我的腦海中,我明白爲什麼,但在這一刻沒有時間解釋它:) – Kev