我需要从缓存的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

谢谢

最佳答案

我在上面的this article中遇到了相同的示例,但是上一篇文章说提供的代码不起作用。

但是,this article有一个可行的解决方案,因此这是您可以使用的代码:

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);
}

09-17 06:34