咱們通常系統在導入數據的時候,通常都是經過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;
- }