我有一个程序,它使用TableAdapters创建的DataTables生成报告。现在我的客户端有了一个新的数据库,他希望能够在新数据库和旧数据库之间切换。我发现我可以通过更改app.config中的连接字符串来实现,但我不知道如何在运行时执行此操作。你能建议我一个方法吗? 感谢
答案 0 :(得分: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"];
答案 1 :(得分: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);