如何使用ADO.net在一个选择框中检索所有数据库名称

本文关键字:检索 数据库 选择 一个 net ADO 何使用 | 更新日期: 2023-09-27 18:25:34

在数据库中包含50个数据库(adventureworks,adventureworksDw,sampleDb…..)

如何使用ADO.net在一个选择框中检索所有数据库名称?

你能帮帮我吗?有什么解决办法吗?

谢谢,

Rajasekhar

如何使用ADO.net在一个选择框中检索所有数据库名称

找到这个旧程序,对我来说很好

public void PopulateDatabaseNames(string connectionString, ComboBox cboDBNames)
{
    SqlDataAdapter da = null;
    SqlCommand cmd = null;
    SqlConnection cnn = null;
    try
    {
        using(cnn = new SqlConnection(connectionString))
        using(cmd = new SqlCommand())
        using(da = new SqlDataAdapter())
        {
            cnn.Open();
            cmd.CommandText = "SELECT NAME FROM master..sysdatabases order by NAME";
            cmd.CommandType = CommandType.Text;
            cmd.Connection = cnn;
            SqlDataReader myReader = cmd.ExecuteReader();
            while (myReader.Read())
            {
                string name = myReader.GetString(0).ToLower();
                if (name != "master" && name != "tempdb" && name != "model" && name != "msdb")
                {
                    cboDBNames.Items.Add(name);
                }
            }
        }
    }
    catch (System.Exception e)
    {
        MessageBox.Show(e.Message, "PopulateDatabasesNames");
    }
}

在数据访问层中,您应该使用查询服务器

Select name from sys.databases

您可以将返回的对象作为dropdownlist的数据源,并记住为ddl调用databind!