【发布时间】:2016-03-19 15:04:21
【问题描述】:
我有一个包含 6 列的数据表 (dt)(S1、S2、S3 是 string,D1、D2、D3 是 double)。 string 列(S1、S2、S3)的组合构成了我的 PrimaryKey:
dt.PrimaryKey = new DataColumn[]
{ dt.Columns["S1"], dt.Columns["S2"], dt.Columns["S3"] };
现在,我想按 D1、D2、D3 对 dt 进行排序并将其保存为数据表。 这是我得到的:
DataView view = new DataView(dt);
view.Sort = "D1, D2, D3";
dt = view.ToTable();
问题是 dt 是按照我想要的方式排序的,因为我丢失了 PrimaryKeys。我试图用dt = view.Table.Copy(); 替换第三行,它保留了PrimaryKeys,但排序不起作用。我也尝试使用LINQ (How to sort DataTable based on multiple column?) 并检查了这一趋势 (DataTable.DefaultView.Sort Doesn't Sort),但它们都没有奏效。
我做错了吗?非常感谢任何帮助。
【问题讨论】:
-
您是否尝试在 view.Table.Copy 之后设置 DefaultView.Sort 属性?
标签: c# sorting datatable primary-key