public static bool LineByLineWriteToDb(DataTable elTable) { //MOE.Common.Data.MOETableAdapters.QueriesTableAdapter moeTA = new MOE.Common.Data.MOETableAdapters.QueriesTableAdapter(); using (var db = new SPM()) { foreach (DataRow row in elTable.Rows) { //Parallel.ForEach(elTable.AsEnumerable(), row => try { var r = new Controller_Event_Log(); r.SignalID = row[0].ToString(); r.Timestamp = Convert.ToDateTime(row[1]); r.EventCode = Convert.ToInt32(row[2]); r.EventParam = Convert.ToInt32(row[3]); if (Settings.Default.WriteToConsole) { Console.WriteLine("---Inserting line for ControllerType {0} at {1}---", row[0], row[1]); } db.Controller_Event_Log.Add(r); db.SaveChangesAsync(); } catch (SqlException sqlex) { if (sqlex.Number == 2627) { if (Settings.Default.WriteToConsole) { Console.WriteLine("Duplicate line for signal {0} at {1}", row[0], row[1]); } //duplicateLineCount++; } else { //insertErrorCount++; if (Settings.Default.WriteToConsole) { Console.WriteLine( "Exeption {0} \n While Inserting a line for controller {1} on timestamp {2}", sqlex, row[0], row[1]); } } } }