예제 #1
0
        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]);
                            }
                        }
                    }
                }