使用Linq判斷DataTable數據是否重複

咱們通常系統在導入數據的時候,通常都是經過NPOI將excel數據轉換成DataTable,而後將DataTable導入到數據庫。在數據導入的過程當中,其實很重要的一部就是檢查DataTable中的數據是否有重複的,若是存在重複的,咱們須要識別出重複的數據。數據庫

在.net中,咱們經過Rows屬性的cast()方法,能夠很方便的過濾出重複的數據,下面的代碼便可實現spa

 
  1. var query = from e in dt.Rows.Cast<DataRow>()  
  2.                     group e by new { sapCode = e.Field<string>("SAPComCode"), sapsupplierCode = e.Field<string>("SapSupplierCode") } into g  
  3.                     select new { sapComCode = g.Key, count = g.Count() };  
  4.         var items = query.Where(A => A.count > 1);  
  5.         if (items.Count() > 0)//存在重複數據  
  6.         {  
  7.             string SameSapComCode = string.Empty;  
  8.             foreach (var item in items)  
  9.             {  
  10.                 SameSapComCode += item.sapComCode + ";";  
  11.             }  
  12.             SameSapComCode = SameSapComCode.TrimEnd(';');  
  13.             result.Data = "如下SAP公司編號的數據存在重複,請檢查後從新導入<br/>" + SameSapComCode;  
  14.             return result;  
  15.         }  
相關文章
相關標籤/搜索