具有c#

时间:2017-07-17 03:08:41

标签: c# sql linq

我有一个名为" ConflictData"的数据表。 我想使用LINQ

执行此SQL命令
Select ID from ConflictData group by ID,DesignArticle,DesignNo,PatternCode having count(ID)>=2))

我试试这个

   var ID = from item in ConflictDatas.AsEnumerable()
                             group item by new
                 {
                     ID = item.ID,
                     DesignArticle = item.DesignArticle,
                     DesignNo = item.DesignNo,
                     PatternCode = item.PatternCode
                 } into g
                             where g.Count() > 2
                             select new
                              {
                                  ID = g.Key.ID
                              };

但它显示错误:

  

错误2' System.Data.DataRow'不包含' ID',' DesignArticle' DesignNo',' PatternCode'的定义没有扩展方法' ID',' DesignArticle' DesignNo',' PatternCode'接受类型为System.Data.DataRow'的第一个参数。可以找到(你错过了使用指令或程序集引用吗?)

我非常确定数据表" ConflictDatas"有这些专栏。

如何修改LINQ?感谢。

1 个答案:

答案 0 :(得分:0)

使用Field<datatype>("columnName")获取数据表行中给定列的单元格值,如下所示

var ID = from item in ConflictDatas.AsEnumerable()
                             group item by new
                 {
                     ID = item.Field<int>("ID"),
                     DesignArticle = item.Field<string>("DesignArticle"),
                     DesignNo = item.Field<string>("DesignNo"),
                     PatternCode = item.Field<string>("PatternCode")
                 } into g
                             where g.Count() > 2
                             select new
                              {
                                  ID = g.Key.ID
                              };