【问题标题】:Viewing all SQL Tables in a DataGridView在 DataGridView 中查看所有 SQL 表
【发布时间】:2014-08-12 22:10:46
【问题描述】:

我有一个加载表名的DataGridView。在构造函数中调用获取表。我有 9 个表存储在 .sdf 数据库中。当它加载时,我列出了所有表至少 81 次。如何显示每个表名之一?我正在使用 SqlCe 3.5C# 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);

                }
            }
        }
    }
}

【问题讨论】:

    标签: c# datagridview sql-server-ce datareader dataadapter


    【解决方案1】:

    您正在混合和组合两件事。要检索数据,您可以使用 DataAdapter OR 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);
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多