我们一般系统在导入数据的时候,一般都是通过NPOI将excel数据转换成DataTable,然后将DataTable导入到数据库。在数据导入的过程中,其实很重要的一部就是检查DataTable中的数据是否有重复的,如果存在重复的,我们需要识别出重复的数据。
在.net中,我们通过Rows属性的cast()方法,可以很方便的过滤出重复的数据,下面的代码即可实现
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;
}
希望能用,以前的都停了
造福于民的好东西,分享是最好的奉献