在数据库中包含50个数据库(adventureworks,adventureworksDw,sampleDb .....)
我们如何使用ADO.net在一个选择框中检索所有数据库名称?
你能帮帮我吗?有没有解决方案?谢谢,
拉哈西克哈
答案 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!