我正在向我的表添加一个自动增量列(称为“rowNum”)并且它运行正常,之后我使用此代码对数据行进行排序:
DataView dv = MyDataSet.Tables[0].DefaultView;
dv.Sort = "columnName DESC";
其中columnName是我的列之一(不是自动增量列)。
现在,问题是: 当我想要获得前10行时,我使用此代码:
dv.RowFilter = "rowNum <= 10";
结果不是我想要的,因为当我执行dv.Sort
时,rowNum改组(变为错误的顺序)。
如何在排序行后获得前10行?
答案 0 :(得分:2)
我更喜欢LINQ这样的东西。相反,我使用System.Linq并写:
var rows = MyDataSet.Tables[0].AsEnumerable()
.OrderByDescending(r => r["columnName"])
.Take(10);
然后绑定到“rows”。
答案 1 :(得分:0)
如果在AsEnumerable()行中添加.Take(10)不起作用。但如果添加下面提到的第二行是有效的。
var Rows = (from row in dt.AsEnumerable()
orderby row["CostPerVeteran"] descending
select row);
dtChart = Rows.Take(10).CopyToDataTable();
&#13;