使用Linq判断DataTable数据是否重复

系统导入数据时,常通过NPOI将Excel数据转成DataTable再导入数据库,其中检查DataTable数据是否重复很重要。在.NET里,可通过属性方法过滤重复数据,文中给出了实现代码,若存在重复数据会给出提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们一般系统在导入数据的时候,一般都是通过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.         }  
 
 

转载于:https://www.cnblogs.com/soundcode/p/11158301.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值