所以我有3个名为abc,t2和t3的sqlite表。我想将它们中的所有三个合并为一个数据网格。我的意思是,首先abc来,然后低于它应该是t2,然后低于t3。
这是我在数据网格视图中仅显示表abc的原始代码:
string sql = " SELECT * FROM abc";
SQLiteDataAdapter da;
DataTable dt;
sqlite_cmd.CommandText = sql;
//Create New Datatable to fill with data
dt = new DataTable();
//Create DataAdapter to fill data in DataTable via Adapter
da = new SQLiteDataAdapter(sql, sqlite_conn);
da.Fill(dt);
// Lets populate the datagrid
dataGridView1.DataSource = dt;
dataGridView1.Refresh();
以下代码是用户建议我应该将所有3个表合并为1个数据网格视图的代码。鉴于我缺乏编程知识,我不知道如何将他的答案与我上面的代码同步。 我从他的代码中得到的错误是当前上下文中不存在名称'abc','t2'和't3'。(很可能是因为他们没有任何sqlite语句
此处的目标是将3个表合并为1个数据网格视图。上面的错误阻止我这样做。完整代码的答案将不胜感激。
DataTable allDTs = abc;
int rowCount = allDTs.Rows.Count - 1;
foreach (DataRow row in t2.Rows)
{
rowCount = rowCount + 1;
allDTs.Rows.Add();
int colCount = -1;
foreach (DataColumn col in t2.Columns)
{
colCount = colCount + 1;
if (colCount > allDTs.Columns.Count - 1) allDTs.Columns.Add(col.ColumnName);
allDTs.Rows[rowCount][colCount] = row[col];
}
}
rowCount = allDTs.Rows.Count - 1;
foreach (DataRow row in t3.Rows)
{
rowCount = rowCount + 1;
allDTs.Rows.Add();
int colCount = -1;
foreach (DataColumn col in t3.Columns)
{
colCount = colCount + 1;
if (colCount > allDTs.Columns.Count - 1) allDTs.Columns.Add(col.ColumnName);
allDTs.Rows[rowCount][colCount] = row[col];
}
}
dataGridView1.DataSource = allDTs;