如何更改 a 的一部分ConnectionString
with LINQ to XML
。例如,我只想更改以下中的Data Source
和Initial Catalog
值:
<connectionStrings>
<add name="connStr" connectionString="Data Source=data-source;Initial Catalog=db;User ID=user;Password=pass" providerName="System.Data.SqlClient;MultipleActiveResultSets=true;" />
</connectionStrings>
我了解如何更改整个 connectionString 属性,但我不想这样做,我只想更改某些部分。
我正在使用以下代码来修改连接字符串的一部分,并且在大多数情况下它都可以工作,但是在这种情况下;
,我该如何修改它以便它不会删除未用 分隔的属性/值。providerName
string[] connArr = connectionString.Value.Split(';');
for (int i = 0; i < connArr.Length; i++)
{
//Get the attribute and the value splitted by the "="
string[] arrSubConn = connArr[i].Split('=');
if (arrSubConn.Length == 2)
{
string connAttr = arrSubConn[0];
string connVal = arrSubConn[1];
//Change the server name
if (connAttr == "Data Source")
connVal = environmentSettings.Server;
//Change the database name
if (connAttr == "Initial Catalog")
connVal = environmentSettings.Database;
newConnString += String.Format("{0}={1};", connAttr, connVal);
}
}