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


我們一般系統在導入數據的時候,一般都是通過NPOI將excel數據轉換成DataTable,然后將DataTable導入到數據庫。在數據導入的過程中,其實很重要的一部就是檢查DataTable中的數據是否有重復的,如果存在重復的,我們需要識別出重復的數據。

在.net中,我們通過Rows屬性的cast()方法,可以很方便的過濾出重復的數據,下面的代碼即可實現

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM