2013-06-05 58 views
0

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

'.FirstOrDefault()。 ToList()'? –

+0

@AndreyGordeev編號:) http://msdn.microsoft.com/en-us/library/bb340482.aspx – Leri

回答

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(); 
+0

非常感謝你,我得到了我想要的,我正在嘗試這個過去1小時..非常感謝你:) – user2380844

+0

@ user2380844不客氣。 ;)不要忘記接受答案作爲解決方案。 – Leri

0

試試這個:

var dt2 = moneyinfo.AsEnumerable().Reverse().Take(1); 

它會給你最後一個記錄您的數據表