【问题标题】:Change app.config connection string depending on PC根据 PC 更改 app.config 连接字符串
【发布时间】:2019-04-21 01:59:11
【问题描述】:

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

非常感谢,

【问题讨论】:

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


    【解决方案1】:

    你可以试试这样的:

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

    【讨论】:

    • 这与我的做法非常相似,但我获取计算机名称并根据它确定它的 DEV、STAGE、PROD、QA 等是否基本相同。
    • 其实我把不想要的行注释掉了;当然,开发环境中不存在生产配置
    • 要编译代码,我必须将 移到 下面
    【解决方案2】:

    另一种方法:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-27
      • 2012-04-24
      • 2013-02-01
      • 2012-04-30
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 2016-09-22
      相关资源
      最近更新 更多