在c#中将sqlite表合并到单个datagridview中

时间:2013-11-12 16:57:04

标签: c# winforms sqlite datagridview

所以我有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;

0 个答案:

没有答案