使用除系统DB之外的DBnames填充下拉列表

时间:2018-02-22 01:53:36

标签: c# if-statement sqlconnection

我需要从C#windows应用程序连接到SQL db 并从连接中填充下拉列表,以从系统DB中的下拉列表中获取服务器中的所有数据库。

我有这段代码:

 using (SqlConnection thisConnection = new SqlConnection("Server=" + serverName + ";User Id=" + uName + ";Password=" + pass + ";"))
                {
                    thisConnection.Open();

                    // Assign it to dropdown menu
                    DataTable databases = thisConnection.GetSchema("Databases");
                    foreach (DataRow database in databases.Rows)
                     {
                         String databaseName = database.Field<String>("database_name");

                        //  MessageBox.Show(databaseName);
                          if (databaseName  == "master")
                          {

                          }
                        if (databaseName == "model")
                          {

                        }
                        if (databaseName == "tempdb")
                        {

                        }
                        if (databaseName == "msdb")
                        {

                        }
                        else
                          { //adding DBs names into dropdownlist  dd_ddase
                            dd_ddase.Items.Add(databaseName);
                        }


                    }

然而它仍会在下拉列表中返回系统dbs,我做错了什么?

2 个答案:

答案 0 :(得分:2)

我认为,这对你来说很有用。

               foreach (DataRow database in databases.Rows)
                {
                    String databaseName = database.Field<String>("database_name");
                    //  MessageBox.Show(databaseName);
                    if (databaseName == "master" || databaseName == "model" || databaseName == "tempdb" || databaseName == "msdb")
                    {

                    }
                    else
                    {
                        comboBox1.Items.Add(databaseName);
                    }    

                }

答案 1 :(得分:2)

基于数据库ID的更简单的版本。

foreach (DataRow database in databases.Rows)
{
    var id = database.Field<short>("dbid");
    var name = database.Field<string>("database_name");

    if (id > 4)
    {
        dd_ddase.Items.Add(name);
    }
}