从数据库中获取最后一行并在datalist中绑定

时间:2013-06-05 12:06:57

标签: c# linq

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()所有行都显示我只想要最后一行请帮助

2 个答案:

答案 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);

它将为您提供数据表中的最后一条记录