我有一个程序使用 TableAdapters 创建的 DataTables 生成报告。现在我的客户有一个新数据库,他希望能够在新数据库和旧数据库之间切换。我发现我可以通过更改 app.config 中的连接字符串来做到这一点,但我不知道如何在运行时做到这一点。你能给我一个方法吗?谢谢
问问题
3407 次
2 回答
7
我不知道如何在运行时做到这一点
不。您可以在 中包含多个连接字符串,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"];
于 2012-04-12T10:48:34.383 回答
1
您可以像这样定义多个连接字符串:
<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"/>
之后,您可以根据您的要求使用 conn 或 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);
于 2012-04-12T10:50:31.747 回答