使用Dataview.RowFilter从SomeTable中选择TOP 5 *?

我需要从缓存的Dataview对象中选择5个最近的行,有没有办法做到这一点?

我试过但是Indexer DataColumn是空的。 :

public static DataView getLatestFourActive() { DataTable productDataTable = getAll().ToTable(); DataColumn ExpressionColumn = new DataColumn("Indexer",typeof(System.Int32)); ExpressionColumn.Unique = true; ExpressionColumn.AutoIncrement = true; ExpressionColumn.AllowDBNull = false; ExpressionColumn.AutoIncrementSeed = 0; ExpressionColumn.AutoIncrementStep = 1; productDataTable.Columns.Add(ExpressionColumn); DataView productFilteredView = productDataTable.DefaultView; productFilteredView.RowFilter = "isActive=1 and Indexer<4"; return productFilteredView; } 

getAll()返回缓存的DataView

谢谢

我在本文中遇到了相同的示例,但最后一篇文章说提供的代码不起作用。

但是, 这篇文章有一个可行的解决方案,所以这里是您可以使用的代码:

 public static DataView getLatestFourActive() { DataTable productDataTable = getAll().ToTable(); DataTable cloneDataTable = productDataTable.Clone(); for (int i = 0; i < 4; i++) { cloneDataTable.ImportRow(productDataTable.Rows[i]); } return new DataView(cloneDataTable); } 
 getALL().Take(5);