根据服务器名称的不同连接字符串

时间:2013-11-28 23:03:18

标签: c# asp.net connection-string

我有一个基于Web的应用程序(用C#编写,asp.net)。该应用程序正在被不同的公司使用。因此,必须根据公司更改连接字符串。替换连接字符串的最佳方法是什么?

注意:我不想为每个人生成特定的web.config文件。

3 个答案:

答案 0 :(得分:1)

如果你真的不想改变不同公司的web.config,一种可能性是以格式提供:

Server=DBHOST;Database=myDataBase;Trusted_Connection=True;

并要求每家公司在其hosts file中添加DBHOST条目。

答案 1 :(得分:1)

如果您为每个公司单独托管您的网站,请使用和更改连接字符串 IS 的正确方法。所有配置信息都可以从一个环境更改为另一个环境。

答案 2 :(得分:0)

您可以给最终用户选项以动态提供连接字符串,如下所示。

<connectionStrings>
<add name="ConnectionNumberOne"
    connectionString="Data Source=ds;Initial Catalog=DB;Integrated Security=True"
    providerName="System.Data.SqlClient" />
<add name="ConnectionNumberTwo"
    connectionString="Data Source=ds2;Initial Catalog=DB2;Integrated Security=True"
    providerName="System.Data.SqlClient" />

您可以这样读取连接字符串:

var connectionOne = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionNumberOne"];
var connectionTwo = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionNumberTwo"];

您也可以保存连接字符串:

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.ConnectionStrings.ConnectionStrings["ConnectionNumberOne"].ConnectionString =        //CONCATINATE YOUR FIELDS TOGETHER HERE
config.Save(ConfigurationSaveMode.Modified, true);
ConfigurationManager.RefreshSection("connectionStrings");