1

我正在向我的表中添加一个自动增量列(称为“rowNum”)并且它运行良好,之后我使用此代码对数据表行进行排序:

DataView dv = MyDataSet.Tables[0].DefaultView;
dv.Sort = "columnName DESC";

其中 columnName 是我的列之一(不是自动增量之一)。

现在,问题是:当我想获得前 10 行时,我使用以下代码:

dv.RowFilter = "rowNum <= 10";

结果不是我想要的,因为当我这样做时dv.SortrowNum 被打乱了(顺序错误)。

排序后如何获得前 10 行?

4

2 回答 2

2

对于这样的东西,我更喜欢 LINQ。相反,我使用 System.Linq 并编写:

var rows = MyDataSet.Tables[0].AsEnumerable()
   .OrderByDescending(r => r["columnName"]) 
   .Take(10);

然后绑定到“行”。

于 2009-09-13T12:20:55.660 回答
0

如果在 AsEnumerable() 行中添加 .Take(10) 不起作用。但是如果添加下面提到的第二行是有效的。

var Rows = (from row in dt.AsEnumerable() 
orderby row["CostPerVeteran"] descending
select row);

dtChart = Rows.Take(10).CopyToDataTable();

于 2015-03-19T17:51:56.033 回答