我有一个带有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
由于
答案 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并转换为您的数据类型