我有两个组合框,comboBoxSelectServer
和comboBoxSelectDatabase
。
根据用户点击comboBoxSelectServer
时在comboBoxSelectDatabase
中选择的值,他们将从该服务器获取各种数据库。
但是,在运行应用程序时,我没有在comboBoxSelectDatabase
中返回任何数据库。
我认为这是由于我的代码的下一部分,就像调试它没有撤回任何东西一样。
comboBoxSelectDatabase.Items.Add(command);
我在下面提供了我的代码;
if (comboBoxSelectServer.SelectedIndex == 0)
{
string commandTextSERV1 = "SELECT name FROM master.sys.databases " +
"where name LIKE 'Client_%'";
string connectionString = Properties.Settings.Default.connectionStringSERV1;
using (SqlConnection con = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(commandTextSERV1, con);
try
{
con.Open();
command.ExecuteNonQuery();
SqlDataReader reader = command.ExecuteReader();
if (reader.Read())
{
comboBoxSelectDatabase.Items.Add(command);
}
else
{
MessageBox.Show("Error");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
con.Close();
}
}
}
答案 0 :(得分:1)
comboBoxSelectDatabase.Items.Add(command);
错了,应该是:
while (reader.Read())
{
comboBoxSelectDatabase.Items.Add(reader["name"].ToString());
}
答案 1 :(得分:0)
问题与您的以下声明有关。在这里,您要添加命令对象,而不是读取器行。
comboBoxSelectDatabase.Items.Add(command);
将其更改为
while (reader.Read())
{
comboBoxSelectDatabase.Items.Add(Convert.ToString(reader["name"]));
}
这应该使用数据库名称填充combox。