private static List <DataTable> SplitTable(DataTable table, int batchSize) { List <DataTable> dts = new List <DataTable>(); DataColumn[] itemcols = table.Columns.Cast <DataColumn>() .Where(c => c.ColumnName.StartsWith("SOM")) .Select(c => new DataColumn(c.ColumnName, c.DataType)) .ToArray(); DataColumn[] uoCols = table.Columns.Cast <DataColumn>() .Where(c => c.ColumnName.StartsWith("SOD")) .Select(c => new DataColumn(c.ColumnName, c.DataType)) .ToArray(); var t_SOMstr = new DataTable(); t_SOMstr.Columns.AddRange(itemcols); var t_SODet = new DataTable(); t_SODet.Columns.AddRange(uoCols); foreach (DataRow row in table.Rows) { DataRow aRow = t_SOMstr.Rows.Add(); DataRow bRow = t_SODet.Rows.Add(); foreach (DataColumn aCol in itemcols) { aRow.SetField(aCol, row[aCol.ColumnName]); } foreach (DataColumn bCol in uoCols) { bRow.SetField(bCol, row[bCol.ColumnName]); } } // DataTable dt = new DataTable(); List <CSOMaster> items = t_SOMstr.DataTableToList <CSOMaster>(); string TobeDistinct = "SOMstr_OID"; // DataTable dtDistinct = GetDistinctRecords(t_SOMstr, TobeDistinct); //Following function will return Distinct records for Name, City and State column. var distinctList = from p in items group p by new { p.SOMstr_Code } //or group by new {p.ID, p.Name, p.Whatever} into mygroup select mygroup.FirstOrDefault(); foreach (var item in items) { CSOMaster oitem = item; CSOBO oitembo = new CSOBO(); CResult oresult = new CResult(); oitem.CreationDate = Convert.ToDateTime(t_SOMstr.Rows[0]["SOMstr_CreationDate"].ToString()); oitem.Creator = t_SOMstr.Rows[0]["SOMstr_Creator"].ToString(); oitem.UpdateBy = t_SOMstr.Rows[0]["SOMstr_UpdateBy"].ToString(); oitem.UpdateDate = Convert.ToDateTime(t_SOMstr.Rows[0]["SOMstr_UpdateDate"].ToString()); oitem.IsActive = t_SOMstr.Rows[0]["SOMstr_IsActive"].ToString(); oitem.Remarks = t_SOMstr.Rows[0]["SOMstr_Remarks"].ToString(); List <CSODetails> umos = t_SODet.DataTableToList <CSODetails>(); foreach (var sodetails in umos) { CSODetails ouom = sodetails; oitem.SOMstr_DetailsList.Add(ouom); //oresult = oitembo.CreateImport(ouom); } oresult = oitembo.CreateSalesImport(oitem); } // dts.Add(t_Item); //dts.Add(t_UOM); return(dts); }