我有一个带有productID和productName的DataView对象,我从Products Table获取所有项目并将它们存储在Cache中.我想获得用户购买的物品,以便他在不使用其他查询或加入表格的情况下购买.
即.产品DataView 1. Foo 2. Foo2 3. Foo3
使用RowFilter过滤到ProductsBoughtByUser((1,3)中的productID)UserProducts DataView 1.Foo 3.Foo3
现在用户首先购买了Foo3,我如何根据正确的(按时间顺序)数组重新排序项目.即3 1
谢谢
以下是DataView.Sort 的语法:
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并转换为您的数据类型