我目前有一个按特定列排序的datatable,一旦排序完成,我希望去掉底部不需要的数据行。
例如,我有14行,只需要前10行,如何删除后4行?
从存储在datatable中的falt文件电子表格文件中查询datatable,然后对数据进行排序,然后只取前10行
发布于 2012-12-10 19:00:38
您可以使用Linq使用Take( 10 )提取前10条记录,但在对datatable进行排序之后
var records = datatable.AsEnumerable().OrderBy(v => v["FieldToUseAsSortOrder"]).Take(10);
foreach(DataRow r in records)
{
// process your records in order
}当然,这将重做对表的排序,因此您可以选择是通过上面的LinQ表达式进行排序,还是在DefaultView行上循环并删除不需要的行
for(int x = 10; x < datatable.DefaultView.Count; x++)
{
datatable.DefaultView[x].Row.Delete();
}
datatable.AcceptChanges();第一种方法让数据表中的所有原始行只提取需要的行,第二种方法将更新数据表,删除不需要的行(当然只在内存中)
发布于 2012-12-10 18:46:50
如果您的数据库是Sql Server:
Delete From VictimTable
Where ID Not In(
Select Top 10 ID From VictimTable Order By SomeColumn)https://stackoverflow.com/questions/13798963
复制相似问题