将所有数据库(MyDatanase.mdf)表显示在comboBox1中

时间:2014-08-09 09:53:17

标签: c# sql sql-server

enter image description here enter image description here

我做的事情,

  
      
  1. 在Sql中,我创建了一个数据库名称:MyDb,
  2.   
  3. 我创建了一个可以在MyDb中创建任意数量的表的应用程序
  4.   
  5. 现在我想在一个comboBox1(不是值或列)中显示我的所有表格。
  6.   

将所有database(dbNames.mdf)表格显示为comboBox1而不是列名称。 我使用此代码绑定dbNames Tables值。但我需要表格而不是价值观或任何东西。请帮忙。

private void Form1_Load(object sender, EventArgs e)
    {
        String strConnection = "Data Source=HP\\SQLEXPRESS;database=Mydb;Integrated Security=true";

        SqlConnection con = new SqlConnection(strConnection);
        try
        {

            con.Open();

            SqlCommand sqlCmd = new SqlCommand();

            sqlCmd.Connection = con;
            sqlCmd.CommandType = CommandType.Text;
            sqlCmd.CommandText = "Select Tables from MyDb.tables";

            SqlDataAdapter sqlDataAdap = new SqlDataAdapter(sqlCmd);

            DataTable dtRecord = new DataTable();
            sqlDataAdap.Fill(dtRecord);
            comboBox1.DataSource = dtRecord;
            comboBox1.DisplayMember = "TABLES";
            con.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

1 个答案:

答案 0 :(得分:2)

您可以使用INFORMATION_SCHEMA中存储的信息,即您可以使用此查询,在MS SQL Server中使用简单:

SELECT * FROM INFORMATION_SCHEMA.TABLES

获取当前数据库中的所有表。您可以在TABLE_NAME列中找到表名,因此最好使用:

sqlCmd.CommandText = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES";
在代码中

而不是

sqlCmd.CommandText = "Select Tables from MyDb.tables";

并使用

将DisplayMember属性设置为列名
comboBox1.DisplayMember = "TABLE_NAME";

代替。