从ComboBox中的SQL数据库导入表的名称(C#)

时间:2015-07-22 07:21:36

标签: c# sql-server visual-studio combobox

我试图在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);
        }

    }

2 个答案:

答案 0 :(得分:2)

填充ComboBox的代码块似乎工作正常。

我只能看到一个问题,即您的代码永远不会被执行,因为代码放在SelectedIndexChanged的{​​{1}}事件处理程序中 此事件永远不会被触发,因为ComboBox中没有项目且索引永远不会更改

将代码移至ComboBox事件处理程序

答案 1 :(得分:0)

如果除此之外一切正常,据我所知,information_schema应该是大写。

Select TABLE_NAME from INFORMATION_SCHEMA.tables

我将您的table_name更改为TABLE_NAME,因为您已将其分配给DisplayMemberValueMember属性。