ConnectionString
での一部を変更するにはどうすればよいですか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);
}
}