如何使用ADO.net检索一个Selectbox中的所有数据库名称?

时间:2012-02-24 05:25:09

标签: c# ado.net

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

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

你能帮帮我吗?有没有解决方案?

谢谢,

拉​​哈西克哈

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

在您的数据访问层中,您应该使用

查询服务器
Select name from sys.databases

您可以将返回的对象作为数据源放入下拉列表,并记得为ddl调用databind!