计算数据网格中的条目?
Posted
技术标签:
【中文标题】计算数据网格中的条目?【英文标题】:Counting entries in a datagrid? 【发布时间】:2012-07-03 23:19:57 【问题描述】:我有一个数据网格,其中填充了来自 SQL 查询的数据集。 我想做的是计算某个条目出现了多少次,例如在第 3 列中,我想计算一个字符串在数据网格中重复的次数。有没有办法做到这一点,也许与 Linq?我最初尝试通过 SQL 查询来执行此操作:
SELECT Count(*) Occurences
From myTable
WHERE Column_name Like 'stringPattern'
但问题是数据库很大,我已经有返回的数据,所以希望不必重新查询数据库?
任何提示或建议将不胜感激。
彼得
【问题讨论】:
【参考方案1】:下面的工作是否...
原创
SELECT Count(*) Occurences
From myTable
WHERE Column_name Like 'stringPattern'
数据表
var count = (from row in myTable.AsEnumerable()
where string.Equals(row["Column_name"].ToString(), "stringPattern")
select row).Count();
【讨论】:
我收到此错误:找不到源类型“System.Data.DataTable”的查询模式的实现。找不到“哪里”。 @Peter 现在意识到您正在使用 .NET DataSet 和 DataTable 类型,我已经更新了我的答案。【参考方案2】:如果您已经有了要从数据集中查询的表,则可以使用 LINQ。
var count = myTable.AsEnumerable().Where(x => x["Column_name"] == "stringPattern").Count();
【讨论】:
原谅我,因为我还在学习,是不是像这样:var count = dataset.Tables[0].Where(x => x["Column_name"] == "stringPattern" ).Count(); 我收到以下信息:“System.Data.DataTable”不包含“Where”的定义,并且没有接受“System.Data.DataTable”类型的第一个参数的扩展方法“Where”可以被发现(您是否缺少 using 指令或程序集引用?) @jsmith 我认为你只能在 .net 4.0 中做到这一点 我认为你可能是对的,但是我很确定 DataTable 有一个 AsEnumerable()。以上是关于计算数据网格中的条目?的主要内容,如果未能解决你的问题,请参考以下文章