我目前有一个按特定列排序的数据表,一旦排序完成,我想摆脱底部不需要的数据行,
例如,我有14行,只需要前10行,我怎样才能删除最后4行?
从存储在数据表中的falt文件电子表格文件中查询数据表,然后我对数据进行排序,然后只想获取前10行
答案 0 :(得分:1)
您可以使用Linq使用Take(10)提取前10个记录但是在对数据表进行排序之后
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();
第一种方法是将所有原始行保留在数据表中,只提取所需的行,第二种方法将更新数据表,删除不需要的行(当然只在内存中)
答案 1 :(得分:0)
如果您的数据库是Sql Server:
Delete From VictimTable
Where ID Not In(
Select Top 10 ID From VictimTable Order By SomeColumn)