如何在app.config中更改连接字符串

时间:2012-04-12 10:46:04

标签: c# sql winforms connection-string app-config

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

2 个答案:

答案 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);
相关问题