动态更改连接字符串

时间:2017-08-03 10:31:24

标签: c# sql asp.net sql-server

我有一个问题,我想在我的Web.config文件中动态更改我的连接字符串的一部分。 我到处都看到人们说它存放它是错误的,但是我找不到其他任何东西来放这个。

我的想法是我连接到数据库,我必须指定SQL客户端。我的ASP.net站点应该可以从许多不同的计算机访问,并且它们具有不同的SQL客户端。 Eg. SQL Server Native Client 10.0SQL Server Native Client 11.0

我找到了一种以字符串形式检索此数据的方法,但我无法弄清楚如何将其插入到我的ConnectionString中。

我的连接字符串示例如下:

<connectionStrings>
    <add name="name" connectionString="DRIVER=SQL Server Native Client 11.0;server=server;Database=database;Trusted_Connection=Yes; Provider=SQLNCLI11.0" />
  </connectionStrings>

我想将提供者字段SQLNCLI11.0替换为我设法创建的字符串。

2 个答案:

答案 0 :(得分:1)

我不清楚为什么要在配置中有多个连接字符串并在运行时读取它们时动态更改连接字符串。
您可以按照以下步骤操作:
 1.在配置文件中声明多个连接字符串,如下所示:

<connectionStrings>
<add name="Provider1" connectionString="..." />
<add name="Provider2" connectionString="..." />
</connectionStrings> 

2。如你所说

  

我找到了一种以字符串形式检索此数据的方法,但我不能   弄清楚如何将它插入我的ConnectionString。

使用提供者名称访问连接字符串,如下所示:

string  Provider1Connection = ConfigurationManager.ConnectionStrings["Provider1"].ConnectionString;
string  Provider2Connection = ConfigurationManager.ConnectionStrings["Provider2"].ConnectionString;     

希望这有帮助!

答案 1 :(得分:0)

您可以将连接字符串设置为环境变量或在秘密管理器上。 https://docs.microsoft.com/en-us/aspnet/core/security/app-secrets