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

时间:2018-09-06 16:53:10

标签: c#

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

@click="checkchanged"

以下是将更改服务器的if条件。 我想在整个代码中使用相同的 @change="checkchanged" 变量。

<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"/>

但是在将新的连接字符串重新分配给 con 变量时,出现了错误。 错误:

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

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

2 个答案:

答案 0 :(得分:2)

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

SELECT * 
  FROM Table_Name T1
 WHERE NOT EXISTS
         ( SELECT 1
             FROM Table_Name T2
            WHERE T1.PersonID = T2.PersonID
              AND T2.To_BankAcc IN ('1','5')
         )

答案 1 :(得分:1)

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

文档指出:

  

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