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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据PC更改app.config连接字符串相关的知识,希望对你有一定的参考价值。

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

非常感谢提前,

答案

你可以尝试类似的东西:

<?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;
另一答案

另一种方式:

<?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);

应根据需要定制粗体字符串

以上是关于根据PC更改app.config连接字符串的主要内容,如果未能解决你的问题,请参考以下文章

在运行时更改连接字符串并重新加载 app.config

对象引用未设置为从代码中更改 app.config 中连接字符串的对象实例 [重复]

c# - 在运行时更改 App.Config 后,实体框架 ConnectionString 不会更新

C#项目 App.config 配置文件不同使用环境配置

使用引用库的 app.config 设置 [重复]

为啥 App.config 存储连接字符串的位置比源代码中更安全?