动态连接字符串

时间:2012-02-11 20:05:08

标签: asp.net

美好的一天,

我的web.config文件中定义了两个连接字符串。

<connectionStrings>
    <add name="AppDb" connectionString="CONNECTION-STRING1"/>
    <add name="LaptopDb" connectionString="CONNECTION-STRING2" />
</connectionStrings>

当我在桌面上工作时,我想使用连接字符串“AppDb”。当我在笔记本电脑上工作时,我想使用连接字符串“LaptopDb”。每次我在不同的机器上工作时,我都不想在连接字符串上注释掉这一行。

我知道我可以以编程方式执行此操作。我只想弄清楚最好的方法。

类似的东西:

if (machineName == desktop)
     use AppDb
else
     use LaptopDb

但我不喜欢这种方法。还有其他我可以测试的东西吗?

2 个答案:

答案 0 :(得分:1)

您可以考虑以下几种方法:

答案 1 :(得分:1)

真的不太难做 - 诀窍是使用System.Environment.MachineName来驱动要选择的字符串并从静态属性中获取连接字符串:

public static string ConnectionStringName
{
    get
    {
        var customConnection = ConfigurationManager.ConnectionStrings[Environment.MachineName] != null;
        var connectionStringName = customConnection ? Environment.MachineName : "DefaultDb";
        return connectionStringName;
    }
}