2012-07-03 46 views
2

我有一个从SQL查询中填充数据集的数据网格。 我想要做的是计算某个条目有多少次出现,例如在第3列中,我想要计算一次字符串在数据网格中重复的次数。有没有办法做到这一点,或许与Linq?我最初试图通过一个SQL查询这样做:计数数据网格中的条目?

SELECT Count(*) Occurences 
From myTable 
WHERE Column_name Like 'stringPattern' 

但问题是,数据库是相当大的,我已经有返回的数据,因此希望不必重新查询数据库?

任何提示或建议,将不胜感激。

彼得

+0

使用LINQ to SQL的 – saj

回答

2

请问以下工作...

原始

SELECT Count(*) Occurences 
From myTable 
WHERE Column_name Like 'stringPattern' 

的DataTable

var count = (from row in myTable.AsEnumerable() 
      where string.Equals(row["Column_name"].ToString(), "stringPattern") 
      select row).Count(); 
+0

我收到此错误: 找不到源类型为“System.Data.DataTable”的查询模式的实现。 '哪里找不到'。 – Peter

+0

@Peter现在意识到你正在使用.NET DataSet和DataTable类型,我已经更新了我的答案。 –

2

如果你已经拥有你想从你可以使用LINQ的数据集来查询该表。

var count = myTable.AsEnumerable().Where(x => x["Column_name"] == "stringPattern").Count(); 
+0

原谅我,因为我仍然在学习所以,这是什么是这样的: 变种计数= dataset.Tables [0]。凡(X => X [ “栏”] == “stringPattern”)计数(); – Peter

+0

@Peter试试.. –

+1

我收到以下内容: 'System.Data.DataTable'不包含'Where'的定义,也没有包含接受'System.Data'类型的第一个参数的扩展方法'Where'。数据表”可以找到(是否缺少using指令或程序集引用?) – Peter