如何更改app.config中的连接字符串
我有一个程序使用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
请问该效果的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