我试图在comboBox中显示我的数据库中的表列表(我的数据库名称是“SQL”)。这是我到目前为止所尝试过的,但它不会显示任何内容:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
DataSet ds = new DataSet();
SqlConnection con = new SqlConnection(@"Data Source=NUC\MICROGARDE;
Initial Catalog=SQL;Integrated Security=True;");
try
{
con.Open();
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.Connection = con;
sqlCmd.CommandType = CommandType.Text;
sqlCmd.CommandText = "Select table_name from information_schema.tables";
SqlDataAdapter sqlDataAdap = new SqlDataAdapter(sqlCmd);
DataTable dtRecord = new DataTable();
sqlDataAdap.Fill(dtRecord);
comboBox1.DataSource = dtRecord;
comboBox1.DisplayMember = "TABLE_NAME";
comboBox1.ValueMember = "TABLE_NAME";
con.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
答案 0 :(得分:2)
填充ComboBox
的代码块似乎工作正常。
我只能看到一个问题,即您的代码永远不会被执行,因为代码放在SelectedIndexChanged
的{{1}}事件处理程序中
此事件永远不会被触发,因为ComboBox
中没有项目且索引永远不会更改
将代码移至ComboBox
事件处理程序
答案 1 :(得分:0)
如果除此之外一切正常,据我所知,information_schema
应该是大写。
Select TABLE_NAME from INFORMATION_SCHEMA.tables
我将您的table_name
更改为TABLE_NAME
,因为您已将其分配给DisplayMember
和ValueMember
属性。