我有一個程序使用TableAdapter創建的DataTable生成報告。現在我的客戶有一個新的數據庫,他希望能夠在新舊數據庫之間切換。我發現我可以通過更改app.config中的連接字符串來實現,但我不知道如何在運行時執行此操作。你能告訴我一個方法嗎? 感謝如何更改app.config中的連接字符串
回答
我不知道如何在運行時做
不要。您可以在app.config
中有多個連接字符串,並在需要時訪問每個連接字符串。
配置:
<connectionStrings>
<add name="conn1" providerName="System.Data.SqlClient"
connectionString="..." />
<add name="conn2" providerName="System.Data.SqlClient"
connectionString="..." />
</connectionStrings>
在代碼:
var conn1 = ConfigurationManager.ConnectionStrings["conn1"];
var conn2 = ConfigurationManager.ConnectionStrings["conn2"];
您可以定義多個連接字符串是這樣的:
<add name="Conn" connectionString="Data Source=PC\SQLEXPRESS;Initial Catalog=NHIB;Integrated Security=True" providerName="System.Data.SqlClient"/>-->
<add name="Conn1" connectionString="Data Source=WINSERVER;Initial Catalog=NHIB1;Integrated Security=True;" providerName="System.Data.SqlClient"/>
之後,你可以用康恩或conn1的根據您的要求..喜歡:
SqlConnection con;
con = new SqlConnection(ConfigurationManager.AppSettings.Get("Conn")); Or
con = new SqlConnection(ConfigurationManager.AppSettings.Get("Conn1"));
您可以將如下之間切換:
string connectionString = HttpContext.Current.Request.IsLocal ?
ConfigurationManager.ConnectionStrings["Conn"].ConnectionString :
ConfigurationManager.ConnectionStrings["Conn1"].ConnectionString;
yourDataContext = new YourApplicationDataContext(connectionString);
它會更好地顯示OP從配置回收密鑰 – 2012-04-12 10:51:31
爲什麼使用'AppSettings'而不是專用的'ConnectionStrings'? – Oded 2012-04-12 10:55:52
這取決於..... – 2012-04-12 10:59:16
- 1. 更改連接字符串值在app.config
- 2. App.Config中連接字符串
- 3. 在運行時更改App.config中的連接字符串
- 4. 如何把字符串作爲連接字符串到app.config?
- 5. 更改連接字符串
- 6. 更改連接字符串
- 7. 在app.config中加密連接字符串
- 8. 如何加密WinForms 1.1 app.config中的連接字符串?
- 9. 如何從類lib的App.config中使用連接字符串?
- 10. 如何從C#中的App.config文件讀取連接字符串
- 11. VB.NET連接字符串(Web.Config,App.Config)
- 12. App.config連接字符串保護錯誤
- 13. App.config連接字符串相對路徑
- 14. 使用InstallShield 2011安裝程序更改app.config中的連接字符串
- 15. VS2005 C#以編程方式更改app.config中包含的連接字符串
- 16. 如何在app.config文件中設置連接字符串值?
- 17. 2或更多的連接字符串上的App.config MySQL的VB.Net
- 18. 更改nopCommerce的連接字符串?
- 19. 如何更改DataSet.xsd中的連接字符串?
- 20. 動態更改連接字符串
- 21. 動態更改ProfileProvider連接字符串
- 22. 如何在實體框架中更改.edmx的App.config文件中的連接字符串
- 23. appharbor測試項目app.config文件不會更改其連接字符串
- 24. 如何更改不同工作位置的連接字符串
- 25. 如何使用EF6更改dbContext上的連接字符串?
- 26. 解密(只)連接字符串中的WinForms部分的app.config
- 27. 啓動項目中沒有App.Config的EF連接字符串
- 28. 代碼中的連接字符串vs app.config文件
- 29. 實體框架不使用連接字符串中的app.config
- 30. C#ConfigurationManager從app.config中檢索錯誤的連接字符串
請問該效果的TableAdapter的?我知道當我創建TableAdapter時,我需要指定它將使用的連接。我知道我可以有多個連接字符串,但是如何在它們之間切換,以便該開關影響整個應用程序。 – NDraskovic 2012-04-12 11:25:50
@NDraskovic - 您需要決定要使用哪個連接。如果你抽象決定使用哪一個類到自己的類,你將有一箇中心點來訪問不同的連接字符串。 – Oded 2012-04-12 11:31:06
抱歉,我不明白,所以我會告訴你我的想法,請告訴我它是否合理:我可以創建TableAdapter來創建包含所需數據的DataTables。現在,由於這些數據庫具有相同的模式,我只需要更改TableAdapter的連接,並且它應該用來自我想要的數據庫的數據填充DataTable。這能做到嗎?我該怎麼做? – NDraskovic 2012-04-12 11:36:06