【发布时间】:2015-09-04 10:01:21
【问题描述】:
我想将单个 DataTable 拆分为多个 DataTables。
Table1 包含 clientid、clientname
(1,client1)(1,client2)(1,client3)(2,client4)(2,client5)
我想把这张表拆分成
table2 = (1,client1)(1,client2)(1,client3)
和
table3 将有 (2,client4)(2,client5)。
相同的客户端 ID DataRows 将移至单独的 DataTable。我该怎么做?
我试过了,但它不起作用。我想在 C# 中不使用 linq 来执行此操作。如何在不使用 C# 中的 linq 的情况下使用特定 id 将数据表拆分为多个数据表?
foreach (DataRow row in dsBindSubCategory.Tables[0].Rows)
{
DataRow newRow = newDt.NewRow();
newRow.ItemArray = row.ItemArray;
newDt.Rows.Add(newRow);
i++;
if (Convert.ToInt32(dsBindSubCategory.Tables[0].Rows[i]["ClientId"]) != Convert.ToInt32(dsBindSubCategory.Tables[0].Rows[i - 1]["ClientId"]))
{
newDs.Tables.Add(newDt);
j++;
newDt = dsBindSubCategory.Tables[0].Clone();
newDt.TableName = "Table_" + j;
newDt.Clear();
i = 0;
}
}
return newDs;
【问题讨论】:
-
出于好奇,为什么要避免使用 linq?
-
通过使用这个,List
subTables = (dsBindSubCategory.Tables[0]).AsEnumerable().GroupBy(row => row.Field ("ClientId")).Select (g => g.CopyToDataTable()).ToList();我达到了我的结果。我无法将这些结果绑定到 gridview 中。 -
等一下,你想将多个
DataTables 绑定到一个GridView? -
这实际上开始听起来像XY Problem。你的最终游戏是什么?你可能走错了方向。
-
将数据集拆分为多个数据表并创建动态gridview并绑定它们
标签: c# asp.net datatable dataset datarow