根据PC更改app.config连接字符串

时间:2009-11-05 02:26:09

标签: c# sql-server visual-studio-2008 linq app-config

我正在大学做一门c#课程,现在我开始使用linq to xml,linQ to sql-Server等。 我在两台PC(大学PC和办公室PC)中使用示例项目 有没有一种简单的方法可以在运行时或设计时(在main.cs中使用常量)更改连接字符串(来自app.config),这样我就可以在大学使用连接字符串,并在办公室轻松使用连接字符串?

提前多多感谢,

2 个答案:

答案 0 :(得分:3)

您可以尝试以下方式:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="Environment" value="Home"/>
  </appSettings>
  <connectionStrings>
    <add name="Work" connectionString="..."/>
    <add name="Home" connectionString="..."/>
  </connectionStrings>
</configuration>

以及后来:

string environment = ConfigurationManager.AppSettings["Environment"];
ConfigurationManager.ConnectionStrings[environment].ConnectionString;

答案 1 :(得分:0)

另一种方法:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <connectionStrings>
        <add name="HomeEnvironment"
             connectionString="Data Source=**HOME-COMPUTER**\SQLEXPRESS;Initial Catalog=**HomeDatabase**;Integrated Security=True;"
             providerName="System.Data.SqlClient" />
        <add name="WorkEnvironment"
             connectionString="DataSource=**WORK-COMPUTER**\SQLEXPRESS;Initial Catalog=**WorkDatabase**;Integrated Security=True;"
             providerName="System.Data.SqlClient"/>
    </connectionStrings>
</configuration>

并像这样使用它:

var environment = Environment.MachineName == "HOME-COMPUTER" ? "HomeEnvironment" : "WorkEnvironment";
var connectionString = ConfigurationManager.ConnectionStrings[environment].ConnectionString;
var dbContext = new **Databasename**ContextDataContext(connectionString);

粗体字符串应根据需要自定义