2011-12-23 160 views
0

我有以下數據表 - > dtFinance如何在數據表的列中檢查值是否存在?

ID Account Name Quarter FY Income_Percent 
1 ABC  Ram Q1  2011 50 
2 XYZ  Hari Q4  2011 35 
3 ABC  Rohit Q3  2011 40 
4 ABC  Ram Q2  2011 25 
5 XYZ  Hari Q3  2011 60 

在上面的數據,我要檢查在上述數據表中是否存在Q3。如果存在,那麼我想獲得該季度的收入百分比和該人的姓名

如何使用LINQ編寫查詢?

回答

3
var query = (
    from myRow in _db.dtFinance 
    where myRow.Quarter == "Q3" 
    select new { myRow.Name, myRow.Income_Percent } 
); 

要確定是否有任何比賽,你可以使用:

if (query.Any()) ... 

要得到名稱與第一個項目的Income_Percent,你可以這樣做:

var firstRow = query.First(); 
string name = firstRow.Name; 
int incomePercent = firstRow.Income_Percent; 
... 

做兩件事只有1分貝的電話,你可以這樣做:

var firstRow = query.FirstOrDefault(); 
if (firstRow != null) { 
    string name = firstRow.Name; 
    int incomePercent = firstRow.Income_Percent; 
    ... 
} 

欲瞭解更多信息,我建議https://stackoverflow.com/questions/47740/what-are-some-good-linq-resources
此外,我愛LINQPad,你可能會覺得它很有趣。您可以輕鬆測試這些代碼片段,並且可以試驗LINQ語言和數據庫。

+0

假設如果Q3在上述表格中不可用,那麼如何首先處理驗證,然後如果驗證通過則獲得結果。怎麼樣?? – venkat 2011-12-23 06:39:05

+0

這是一張數據表。請幫助我適當的數據類型也。因爲這裏Quarter是'string'類型,而Income_Percent是'int'數據類型。幫助我datatable.AsEnumerable – venkat 2011-12-23 06:47:32

+0

如果它不存在那麼什麼是驗證? – V4Vendetta 2011-12-23 06:50:55

1

@Scott裏普利的答案是你想要的。我只是想用方法語法拋出另一個linq例子。您看到的大多數示例都是查詢語法,但我通常更喜歡簡單場景的方法語法。

var row = _db.dtFinance.FirstOrDefault(x => x.Quarter == "Q3"); 
if (row != null) 
{ 
    var name = row.Name; 
    var incomePercent = row.Income_Percent; 
    ... 
} 

我也強烈推薦LINQPad - 很棒的一款軟件。

+1

是的,我完全同意「方法語法」(這是什麼技術上稱爲?)...我完全是面向對象的思想,所以我**認爲在OOP **,和LINQ語法總是減慢我!然而,偶爾它不那麼冗長,更容易閱讀,所以它有它的用途。 – 2011-12-23 08:07:28

+0

是的,「查詢語法」和「方法語法」是微軟如何引用它們 - http://msdn.microsoft.com/en-us/library/bb397947.aspx。當我必須進行大量分組時,我發現自己使用查詢語法。 – codeConcussion 2011-12-23 14:51:31

相關問題