あなたの必要性に従ってテキストまたは値を選択し、ドロップダウンリストに基づいて実行時にdynamiccaly接続文字列を変更するには、コードの下に見つけてください。
<asp:DropDownList ID="ddltest" AutoPostBack="True" OnSelectedIndexChanged="ddltest_OnSelectedIndexChanged" runat="server">
<asp:ListItem Text="CompanyName" Value="1"></asp:ListItem>
<asp:ListItem Text="CompanyName1" Value="2"></asp:ListItem>
</asp:DropDownList>
protected void ddltest_OnSelectedIndexChanged(object sender, EventArgs e)
{
var conString = "";
var ConStringName = "test";
switch (ddltest.SelectedItem.Text.ToLower())
{
case "CompanyName":
conString = GetConStringFromAppSetting("CompanyName");
AddUpdateConnectionString(conString, ConStringName);
break;
case "CompanyName1":
conString = GetConStringFromAppSetting("CompanyName1");
AddUpdateConnectionString(conString, ConStringName);
break;
}
}
private string GetConStringFromAppSetting(string test)
{
var constring = ConfigurationManager.AppSettings[test].Trim();
return constring;
}
private void AddUpdateConnectionString(string conStringValue, string conStringName)
{
var path = Server.MapPath("~/Web.Config");
var doc = new XmlDocument();
doc.Load(path);
if (doc.DocumentElement != null)
{
var list = doc.DocumentElement.SelectNodes(string.Format("connectionStrings/add[@name='{0}']", conStringName));
if (list != null)
{
var node = list[0];
if (node.Attributes != null) node.Attributes["connectionString"].Value = conStringValue;
}
}
doc.Save(path);
}
上記のコードでは、if elseブロックをswitchブロックに変更しました。これはコードをうまく読み込むのに役立ちます。ドロップダウンから選択したテキスト値をチェックします。
最初のメソッドはGetConStringFromAppSettingです。それはドロップダウンの選択されたテキストを受け入れ、WebConfigのAppSettingセクションで同じことをチェックし、その値を取得します。
<appSettings>
<add key="CompanyName" value="constringOfThatCompany" />
<add key="CompanyName1" value="constringOfThatCompany1" />
</appSettings>
方法AddUpdateConnectionStringさがあることが後:ウェブコンフィグののAppSettingで
は、以下のように動作しません。 ITは上記のメソッドとデフォルトの接続文字列名から受け取ったConstring値を受け入れます。
設定ファイルをロードします。その方法ではその後
。
このファイルをXMLDocumentにロードすると、簡単に解析できます。
3.私たちが解析した名前で接続文字列ノードを見つけます。
接続文字列の値をそのノードの値に設定します。
文書(web.COnfig)を再度保存します。
注:これは、このようなウェブの設定を変更するには良い方法ではありません。他の安全な方法を提供することができます。
ありがとうございます。非常に役に立ちます –
ようこそ。それが役に立ったら、答えとしてマークすることができます。 – user2435617