moneyinfo表有很多行具有相同的ID,我想采取最后一行,我将使用下面的代码代码并执行此操作
var viewall3 = (from viewall4 in vfdet.MoneyInfos where viewall4.CustAccNo == id orderby viewall4.Moneyid descending select viewall4).FirstOrDefault();
但现在我想绑定datalist中的最后一行,我必须使用.ToList()来绑定
var viewall3 = (from viewall4 in vfdet.MoneyInfos where viewall4.CustAccNo == id orderby viewall4.Moneyid descending select viewall4).ToList();
accdetai.DataSource = viewall3;
accdetai.DataBind();
但如果我使用.ToList()
所有行都显示我只想要最后一行请帮助
答案 0 :(得分:2)
尝试:
var viewall3 = (from viewall4 in vfdet.MoneyInfos
where viewall4.CustAccNo == id
orderby viewall4.Moneyid descending
select viewall4)
.Take(1).ToList();
Take
从序列的开头返回指定数量的连续元素。所以你只能从你的枚举开头拿一件物品。
我个人认为这段代码更具可读性:
var viewall3 = vfdet.MoneyInfos.Where(i => i.CustAccNo == id)
.OrderByDescending(i => i.Moneyid)
.Take(1)
.ToList();
答案 1 :(得分:0)
试试这个:
var dt2 = moneyinfo.AsEnumerable().Reverse().Take(1);
它将为您提供数据表中的最后一条记录