Как проверить, есть ли значение в столбце таблицы данных? - PullRequest
0 голосов
/ 23 декабря 2011

У меня есть следующая DataTable -> 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 в приведенной выше DataTable. Если существует, то я хочу получить Income_Percent этого квартала и имя человека

Как написать запрос с помощью LINQ?

Ответы [ 2 ]

3 голосов
/ 23 декабря 2011
var query = (
  from myRow in _db.dtFinance
  where myRow.Quarter == "Q3"
  select new { myRow.Name, myRow.Income_Percent }
);

Чтобы определить, есть ли совпадения, вы используете:

if (query.Any()) ...

Чтобы получить Имя и Процент дохода первого элемента, вы можете сделать:

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 и вашей базой данных.

1 голос
/ 23 декабря 2011

@ Скотт Рипли ответит то, что ты хочешь.Я просто хотел выбросить другой пример linq, используя синтаксис метода.Большинство примеров, которые вы видите, это синтаксис запросов, но я обычно предпочитаю синтаксис методов для простых сценариев.

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

Я также настоятельно рекомендую LINQPad - потрясающее программное обеспечение.

...