2011-12-23 6 views
0

- > dtFinance値をチェックする方法はデータテーブルの列にありますか?私は、DataTableの次まし

上記のデータで
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は上記のDataTableに存在するかどうかを確認したいです。存在する場合、その四半期の所得とその人の名前を取得したい

LINQでクエリを書くにはどうすればいいですか?

if (query.Any()) ... 

の最初の項目の名前とIncome_Percentを取得するには、あなたが行うことができます:任意の一致がある場合には、使用を決定するために

答えて

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

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

の両方を行うにはわずか1 dbのコールで、次の操作を実行できます。

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

+0

これはDataTableです。適切なデータ型で私を助けてください。ここではQuarterが 'string'型であり、Income_Percentが 'int'データ型であるためです。 datatable.AsEnumerableで助けてください – venkat

+0

それが存在しない場合、検証は何ですか? – V4Vendetta

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を習っていますので** OOPで考えると** LINQの構文は遅くなります!しかし、しばらくの間、それはあまり冗長でなく読みやすいので、その用途を持っています。 –

+0

"クエリの構文"と "メソッドの構文"は、Microsoftがそれらをどのように参照しているかを示しています - http://msdn.microsoft.com/en-us/library/bb397947.aspx私は自分が多くのグループ化をしなければならないときには、クエリ構文を使用しています。 – codeConcussion

関連する問題