在Dropdownlist

时间:2018-03-28 05:16:21

标签: c# sql-server

在我的C#程序中,我有3个下拉列表。

  1. 在下拉列表1中,我必须显示所有SQL服务器名称。

  2. 该服务器名称下的所有数据库名称都应显示在 下拉列表2.

  3. 在下拉列表3中,所选的所有表名都在其中 数据库应该要显示。 我想知道如何为此编写连接字符串,因为可能有许多服务器,DB和Tables.I无法为每个服务器写入连接字符串。我需要编写一个连接字符串,根据提取数据选定的下拉列表值。

  4. 我使用if else语句尝试了以下代码并且它工作正常。但我不想使用if else语句。所以请帮助我。

    string Server1 = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
            string Server2 = ConfigurationManager.ConnectionStrings["DBCS1"].ConnectionString;
            string Server3 = ConfigurationManager.ConnectionStrings["DBCS2"].ConnectionString;
            string Server4 = ConfigurationManager.ConnectionStrings["DBCSLocal1"].ConnectionString;
            private string Server;
    
    
    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
            {
                if (DropDownList1.SelectedValue == @"Anusql\SQLEXPRESS")
                {
                    Server = Server1;
                }
                else if (DropDownList1.SelectedValue == @"CAB3RMIGGA\SQLEXPRESS")
                {
                    Server = Server2;
    
                }
                else
                {
                    Server = Server3;
                }
    
                SqlConnection sqlconn = new SqlConnection(Server);
                SqlCommand cmd = new SqlCommand("SELECT * FROM SYS.databases", sqlconn);
                sqlconn.Open();
                SqlDataAdapter sda = new SqlDataAdapter(cmd);
                DataSet sd = new DataSet();
                sda.Fill(sd);
                DropDownList3.DataSource = sd;
                DropDownList3.DataTextField = "name";
                DropDownList3.DataValueField = "name";
                DropDownList3.DataBind();
                DropDownList3.Items.Insert(0, new ListItem("--Select--", "0"));
                sqlconn.Close();
    
    
            }
    

1 个答案:

答案 0 :(得分:0)

你对解决这个问题有什么看法?到目前为止,您还没有说过您尝试/想过的内容?这是我关于实施的建议(&你会看到问题,因为我们不知道你知道并允许使用的所有东西)。

我希望以下类能够保留所有配置

internal class ProjectEnvironment
{
   public string Name {get; set;}
   public List<SQLServer> Servers {get; set;}
}

internal class SQLServer
{
   public string Name {get; set;}
   public string HostName {get; set;}
   public int Port {get; set;}
   public List<Database> Databases {get; set;}
}

internal class Database
{
   public string Name {get; set;}
   public List<string> Tables {get; set;}
}

假设此类的XML序列化版本 - 填满了您公司/项目所具有的所有可能的SQL Server详细信息。该序列化版本将被存储并用作我的配置。在程序启动时,我将找到config.xml文件将其序列化为上述类结构,然后将控件绑定到相关属性。