繁体   English   中英

动态更改连接字符串时出错

[英]Error while changing connection string dynamically

我正在使用ADO.net,我的要求是根据某些条件动态更改服务器。 所以在我的web.config中我保存了2个连接,如下所示。 一个名字叫REMOTE和DBCS

<add name="REMOTE" connectionString="Server=;Initial Catalog=;Persist Security Info=False;User ID=;Password=;MultipleActiveResultSets=true;Encrypt=True;
TrustServerCertificate=False;Connection Timeout=0" providerName="System.Data.SqlClient"/>

<add name="DBCS" connectionString="Server=;Initial Catalog=;Persist Security Info=False;User ID=;Password=;MultipleActiveResultSets=true;Encrypt=True;
TrustServerCertificate=True;Connection Timeout=0" providerName="System.Data.SqlClient"/>

以下是将改变服务器的if条件。 我想在整个代码中使用相同的con变量。

if (some condition)
{
string connectionString = ConfigurationManager.ConnectionStrings["REMOTE"].ConnectionString;
con = new SqlConnection(connectionString);
}

但是在将新的连接con重新分配给con变量时,我收到了错误。 错误:

Cannot assign to 'con' because it is a 'using variable'

由于我是C#的新手,我很难处理这种情况。

您(正确)在使用块中创建了con实例。 在创建SqlConnection实例时传递正确的连接字符串,创建后不要重新分配

string connectionString = (some condition)
    ? ConfigurationManager.ConnectionStrings["REMOTE"].ConnectionString
    : ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;

using(var con = new SqlConnection(connectionString))
{
   // code using your SqlConnection instance
}

您似乎正在使用using并尝试在该块中分配新值,这是不允许的。

文件说明:

在using块中,该对象是只读的,不能修改或重新分配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM