连接字符串使用DropDownList进行管理

时间:2016-07-22 09:08:13

标签: asp.net

假设我们有5家公司,有5个数据库。现在情况是我们需要更改显示在下拉列表中的公司名称上的数据库路径[连接字符串]。当我们在选择下拉值时选择公司名称时,我们需要访问该公司数据库。如何在asp.net中执行此操作以及X_train-> Y_pred中的必要更改以及公司名称的下拉事件。

现在我试过了:

web.config

1 个答案:

答案 0 :(得分:0)

找到下面的代码,根据您的需要,根据下拉列表选择的文本或值,在运行时更改连接字符串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块更改为切换块,这有助于很好地读取代码。它将从下拉列表中检查所选文本值。

第一种方法是GetConStringFromAppSetting。它将接受选定的下拉文本,它将在WebConfig的AppSetting部分中检查相同内容并从中获取值。

在Web配置的AppSetting中,如下所示:

<appSettings>    
<add key="CompanyName" value="constringOfThatCompany" />
<add key="CompanyName1" value="constringOfThatCompany1" />
</appSettings>

之后有方法是AddUpdateConnectionString。 IT将接受从上面的方法和默认连接字符串名称中接收的Constring值。

之后用那种方法:

  1. 加载配置文件。

  2. 在XMLDOcument中加载该文件,以便我们轻松解析。

  3. 3.按我们解析的名称查找连接字符串节点。

    1. 设置该节点的值为连接字符串值。

    2. 再次保存文档(web.COnfig)。

    3. 注意:这不是改变这样的Web配置的好方法。一个人可以提供其他安全的方式。