如何重新排序DataView对象中的项目

时间:2010-01-24 16:06:23

标签: c# asp.net

我有一个带有productID和productName的DataView对象, 我从Products Table获取所有项目并将它们存储在Cache中。 我希望获得用户购买的商品,以便他在不使用其他查询或加入表格的情况下购买。

即。 产品DataView 福 2. Foo2 3. Foo3

使用RowFilter过滤到ProductsBoughtByUser((1,3)中的productID) UserProducts DataView 1.Foo 3.Foo3

现在用户首先购买了Foo3,我如何根据正确的(按时间顺序)数组重新排序项目。即3 1

由于

1 个答案:

答案 0 :(得分:5)

以下是DataView.Sort的syntax

private void SortByTwoColumns()
{
    // Get the DefaultViewManager of a DataTable.
    DataView view = DataTable1.DefaultView;

    // By default, the first column sorted ascending.
    view.Sort = "State, ZipCode DESC";
}

从您的原始帖子中,您听起来只有产品ID和产品名称。除非您还要检索购买/订单日期,否则无法在内存中对这些内容进行排序。

最简单的做法可能是将日期列(PurchaseDate)添加到您已经使用的sql语句中,然后执行view.Sort = "PurchaseDate DESC";

这样,您不必再编写另一个语句或第二次点击数据库进行此类操作。

编辑: DataRowView具有整数和字符串索引器。例如:

foreach (DataRowView row in dataView)
{ 
   var value = row["COLUMN_NAME"]; 
}

该列存储为对象,因此您必须检查null并转换为您的数据类型