查看DataGridView中的所有SQL表

本文关键字:SQL DataGridView 查看 | 更新日期: 2023-09-27 18:10:02

我有一个加载表名的DataGridView。在构造函数中调用gettables。我在.sdf数据库中存储了9个表。当它加载时,我列出了所有表至少81次。如何显示每个表名中的一个?我使用SqlCe 3.5 c# 2010 Express。下面是我的代码:

DataTable dt = new DataTable();
private void getTables(object sender, EventArgs e)
{
    dataGridView1.DataSource = dt;
    string strConnect = @"Data Source=|DataDirectory|'LWADataBase.sdf";
    using (SqlCeConnection con = new SqlCeConnection(strConnect))
    {
        con.Open();
        using (SqlCeCommand com = new SqlCeCommand("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES", con))
        {
            using (SqlCeDataReader reader = com.ExecuteReader())
            {
                SqlCeDataAdapter da = new SqlCeDataAdapter();
                da.SelectCommand = com;
                while (reader.Read())
                {
                    da.Fill(dt);
                }
            }
        }
    }
}

查看DataGridView中的所有SQL表

你把两件事混在一起了。为了检索数据,您可以使用DataAdapter 一个DataReader,而不是每一个。在这里,您只需要DataAdapter来填充表。

private void getTables(object sender, EventArgs e)
{
    dataGridView1.DataSource = dt;
    string strConnect = "Data Source=|DataDirectory|''LWADataBase.sdf";
    using (SqlCeConnection con = new SqlCeConnection(strConnect)) {
        con.Open();
        using (SqlCeCommand com = new SqlCeCommand("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES", con)) {
            using (SqlCeDataAdapter da = new SqlCeDataAdapter()) {
                da.SelectCommand = com;
                da.Fill(dt);
            }
        }
    }
}