使用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);