计算数据网格中的条目?

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()。

以上是关于计算数据网格中的条目?的主要内容,如果未能解决你的问题,请参考以下文章

PHP 计算数据库表中的条目

计算数据网格中的列

操作系统数据中心 - 网格参考中的邮政编码

在 extjs 网格中只为一行添加组合框

数组上的php循环以计算数据库中的条目

自动更新 WPF 数据网格中的计算属性