如何在数据表的列中检查值是否存在?
我有以下数据表 - > 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()) ...
要得到名称与第一个项目的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语言和数据库。
@Scott里普利的答案是你想要的。我只是想用方法语法抛出另一个linq例子。您看到的大多数示例都是查询语法,但我通常更喜欢简单场景的方法语法。
var row = _db.dtFinance.FirstOrDefault(x => x.Quarter == "Q3");
if (row != null)
{
var name = row.Name;
var incomePercent = row.Income_Percent;
...
}
我也强烈推荐LINQPad - 很棒的一款软件。
是的,我完全同意“方法语法”(这是什么技术上称为?)...我完全是面向对象的思想,所以我**认为在OOP **,和LINQ语法总是减慢我!然而,偶尔它不那么冗长,更容易阅读,所以它有它的用途。 – 2011-12-23 08:07:28
是的,“查询语法”和“方法语法”是微软如何引用它们 - http://msdn.microsoft.com/en-us/library/bb397947.aspx。当我必须进行大量分组时,我发现自己使用查询语法。 – codeConcussion 2011-12-23 14:51:31
假设如果Q3在上述表格中不可用,那么如何首先处理验证,然后如果验证通过则获得结果。怎么样?? – venkat 2011-12-23 06:39:05
这是一张数据表。请帮助我适当的数据类型也。因为这里Quarter是'string'类型,而Income_Percent是'int'数据类型。帮助我datatable.AsEnumerable – venkat 2011-12-23 06:47:32
如果它不存在那么什么是验证? – V4Vendetta 2011-12-23 06:50:55