我做的事情,
- 在Sql中,我创建了一个数据库名称:MyDb,
- 我创建了一个可以在MyDb中创建任意数量的表的应用程序
- 现在我想在一个
醇>comboBox1
(不是值或列)中显示我的所有表格。
将所有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);
}
}
答案 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";
代替。