我需要从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,我做错了什么?
答案 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);
}
}