咱们通常系统在导入数据的时候,通常都是经过NPOI将excel数据转换成DataTable,而后将DataTable导入到数据库。在数据导入的过程当中,其实很重要的一部就是检查DataTable中的数据是否有重复的,若是存在重复的,咱们须要识别出重复的数据。数据库
在.net中,咱们经过Rows
属性的cast()
方法,能够很方便的过滤出重复的数据,下面的代码便可实现spa
- var query = from e in dt.Rows.Cast<DataRow>()
- group e by new { sapCode = e.Field<string>("SAPComCode"), sapsupplierCode = e.Field<string>("SapSupplierCode") } into g
- select new { sapComCode = g.Key, count = g.Count() };
- var items = query.Where(A => A.count > 1);
- if (items.Count() > 0)//存在重复数据
- {
- string SameSapComCode = string.Empty;
- foreach (var item in items)
- {
- SameSapComCode += item.sapComCode + ";";
- }
- SameSapComCode = SameSapComCode.TrimEnd(';');
- result.Data = "如下SAP公司编号的数据存在重复,请检查后从新导入<br/>" + SameSapComCode;
- return result;
- }