C# 动态更改连接字符串
我遇到了一个问题,我想动态更改Web.config文件中connectionstring的一部分。 无论我到哪里,人们都在说,那时候把它放在哪里是不对的,但我找不到其他地方可以放这个 我的想法是连接到一个数据库,我必须指定SQL客户机。我的ASP.net站点应该可以从许多不同的计算机访问,并且它们具有不同的SQL客户端<代码>例如SQL Server本机客户端10.0或SQL Server本机客户端11.0 我找到了一种方法,可以将此数据作为字符串检索,但我不知道如何将其插入到ConnectionString中 我的连接字符串示例如下:C# 动态更改连接字符串,c#,sql,asp.net,sql-server,C#,Sql,Asp.net,Sql Server,我遇到了一个问题,我想动态更改Web.config文件中connectionstring的一部分。 无论我到哪里,人们都在说,那时候把它放在哪里是不对的,但我找不到其他地方可以放这个 我的想法是连接到一个数据库,我必须指定SQL客户机。我的ASP.net站点应该可以从许多不同的计算机访问,并且它们具有不同的SQL客户端例如SQL Server本机客户端10.0或SQL Server本机客户端11.0 我找到了一种方法,可以将此数据作为字符串检索,但我不知道如何将其插入到ConnectionStr
<connectionStrings>
<add name="name" connectionString="DRIVER=SQL Server Native Client 11.0;server=server;Database=database;Trusted_Connection=Yes; Provider=SQLNCLI11.0" />
</connectionStrings>
我想用我设法创建的字符串替换Provider字段
SQLNCLI11.0
。您可以将连接字符串设置为环境变量或在secret manager上。
我不清楚当您可以在配置中有多个连接字符串并在运行时读取它们时,为什么要动态更改连接字符串。
您可以按照以下步骤操作:
1.在配置文件中声明多个连接字符串,如下所示:
<connectionStrings>
<add name="Provider1" connectionString="..." />
<add name="Provider2" connectionString="..." />
</connectionStrings>
希望这有帮助 您的ASP.net站点在哪里运行?在单个服务器上,还是在数十个客户端上?如果您使用的
SqlClient
btw驱动程序不再相关,则多个客户端Provider
/Driver
将不相关。它仍然是过去的东西。并不是说我在使用OLEDB连接,我需要提供程序。那么你也要连接到非SQL Server数据库吗?只需设置配置值Provider={PROV}
,然后创建一个helper方法,在用正确的提供程序字符串替换{PROV}
后返回它?
string Provider1Connection = ConfigurationManager.ConnectionStrings["Provider1"].ConnectionString;
string Provider2Connection = ConfigurationManager.ConnectionStrings["Provider2"].ConnectionString;