使用除系统数据库之外的数据库名称填充下拉列表

populate dropdownlist with DBnames except system DBs

我需要从 C# windows 应用程序连接到 SQL 数据库 并从一个连接填充一个下拉列表,使除系统数据库外的所有数据库都位于下拉列表中。

我有这个代码:

 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);
                        }


                    }

但是它仍然 returns 系统数据库在下拉,我做错了什么?

我觉得,对你有用

               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);
                    }    

                }

基于数据库 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);
    }
}