C# 如何检查数据表的列中是否存在值?

C# 如何检查数据表的列中是否存在值?,c#,linq,c#-4.0,.net-3.5,.net-4.0,C#,Linq,C# 4.0,.net 3.5,.net 4.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 在上述数据中,我想

我有以下数据表->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编写查询

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;
...
var firstRow = query.FirstOrDefault();
if (firstRow != null) {
    string name = firstRow.Name;
    int incomePercent = firstRow.Income_Percent;
    ...
}
要使用仅1个db调用同时执行这两项操作,您可以执行以下操作:

var firstRow = query.First();
string name = firstRow.Name;
int incomePercent = firstRow.Income_Percent;
...
var firstRow = query.FirstOrDefault();
if (firstRow != null) {
    string name = firstRow.Name;
    int incomePercent = firstRow.Income_Percent;
    ...
}
有关更多信息,我建议
还有,我喜欢,你可能会觉得很有趣。您可以轻松地测试这些代码片段,并且可以使用LINQ语言和数据库进行实验

要确定是否存在任何匹配项,请使用:

if (query.Any()) ...
要获取第一项的名称和收入百分比,可以执行以下操作:

var firstRow = query.First();
string name = firstRow.Name;
int incomePercent = firstRow.Income_Percent;
...
var firstRow = query.FirstOrDefault();
if (firstRow != null) {
    string name = firstRow.Name;
    int incomePercent = firstRow.Income_Percent;
    ...
}
要使用仅1个db调用同时执行这两项操作,您可以执行以下操作:

var firstRow = query.First();
string name = firstRow.Name;
int incomePercent = firstRow.Income_Percent;
...
var firstRow = query.FirstOrDefault();
if (firstRow != null) {
    string name = firstRow.Name;
    int incomePercent = firstRow.Income_Percent;
    ...
}
有关更多信息,我建议

还有,我喜欢,你可能会觉得很有趣。您可以轻松地测试这些代码片段,并可以使用LINQ语言和数据库进行实验。

@Scott Ripley的答案正是您想要的。我只是想抛出另一个使用方法语法的linq示例。您看到的大多数示例都是查询语法,但对于简单场景,我通常更喜欢方法语法

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

我还强烈推荐一款很棒的软件。

@Scott Ripley的答案就是你想要的。我只是想抛出另一个使用方法语法的linq示例。您看到的大多数示例都是查询语法,但对于简单场景,我通常更喜欢方法语法

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

我还强烈推荐一款非常棒的软件。

假设上述表格中没有Q3,那么如何首先处理验证,然后如果验证通过,则获得结果。它是一个数据表。请帮助我正确的数据类型也。因为这里季度是“字符串”类型,收入百分比是“int”数据类型。请帮助我了解datatable.AsEnumerable如果它不存在,那么验证是什么?假设上述表格中没有Q3,那么如何首先处理验证,然后如果验证通过,则获得结果。它是一个数据表。请帮助我正确的数据类型也。因为这里季度是“字符串”类型,收入百分比是“int”数据类型。请帮助我了解datatable.asEnumerable如果它不存在,那么验证是什么?是的,我完全同意“方法语法”(这就是它的技术名称?)。。。我完全是面向对象的,所以我认为是面向对象的,LINQ语法总是让我慢下来!不过,偶尔,它会变得不那么冗长,也更容易阅读,所以它确实有它的用途。是的,微软用“查询语法”和“方法语法”来称呼它们。我发现自己在需要进行大量分组时使用了查询语法。是的,我完全同意“方法语法”(技术上就是这么叫的?)。。。我完全是面向对象的,所以我认为是面向对象的,LINQ语法总是让我慢下来!不过,偶尔,它会变得不那么冗长,也更容易阅读,所以它确实有它的用途。是的,微软用“查询语法”和“方法语法”来称呼它们。我发现自己在需要进行大量分组时使用查询语法。