2017-07-17 29 views
0

我有一個名爲「ConflictData」的Datatable。 我想通過使用LINQ通過具有c#的數據表組

Select ID from ConflictData group by ID,DesignArticle,DesignNo,PatternCode having count(ID)>=2)) 

做這個SQL命令我試試這個

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 
           }; 

但它顯示錯誤:

Error 2 'System.Data.DataRow' does not contain a definition for 'ID','DesignArticle','DesignNo','PatternCode' and no extension method 'ID','DesignArticle','DesignNo','PatternCode' accepting a first argument of type 'System.Data.DataRow' could be found (are you missing a using directive or an assembly reference?)

我很確定數據表 「ConflictDatas」 有這些列。

如何修改我的LINQ?謝謝。

+0

已包含'使用System.Data'? –

+0

你在查詢內存中的DataTable嗎? –

+0

我已經包含使用System.Data –

回答

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 
           }; 
+0

謝謝。它可以工作。 –

相關問題