如何在一系列堆叠数据网格中显示来自多个datatable的数据

本文关键字:数据 显示 datatable 网格 一系列 数据网 | 更新日期: 2023-09-27 18:18:15

我有一个未定义的DataTables数量。我从我的DataBase中得到它们,每个DataTable代表我的DataBase中的一个表,我不使用DataBase的所有表,只是我需要的几个表(这些是在代码前面选择的),而不是所有列(与表一样)。

现在我的问题:我想在DataGrid中显示它们,一个在另一个下面,它们之间为表名断开。

这是我如何得到我的数据表:

List<DBTable> selectedTbl = DBObject.SingDBObj.GetSelectedTables();
foreach (DBTable tbl in selectedTbl)
{
    string cols = tbl.GetSelectedColumnNames();
    string query = @"SELECT " + cols + " FROM [" + DBObject.SingDBObj.DataSource + "].[" + DBObject.SingDBObj.Database + "].[" + tbl.Schema + "].[" + tbl.Name + "];";
    DataTable DTShow = DBObject.SingDBObj.ExecuteQuery(query);
}
dataGridShowColmns.DataContext = ??;

是否有简单的方法来做到这一点?

如何在一系列堆叠数据网格中显示来自多个datatable的数据

你的意思可能是:

DataSet ds = new DataSet();
// dataset is here just initialized for demonstration, you would first
// get the tables from database and populate dataset
for (int i = 0; i < ds.Tables.Count; i++)
{
    DataTable dt = ds.Tables[i];
    foreach (DataRow dr in dt.Rows)
    {
        dataGridView1.Rows.Add(dr);
    }
}

在SQL中不能指定数据集的名称,只有在c#/VB中可以这样做。像

Dataset.Table[0].Name = "MyTable";