public bool Add2DB(List<SystemClass> eddbsystems, List<StationClass> eddbstations) { SQLiteDBClass db = new SQLiteDBClass(); db.Connect2DB(); Stopwatch sw = new Stopwatch(); sw.Start(); using (SQLiteConnection cn = new SQLiteConnection(SQLiteDBClass.ConnectionString)) { cn.Open(); int nr=0; using (var tra = cn.BeginTransaction()) { try { foreach (SystemClass sys in eddbsystems) { SystemClass sysdb = SystemData.GetSystem(sys.name); if (sysdb != null) // Update system { if (sysdb.eddb_updated_at != sys.eddb_updated_at ||sysdb.population!=sys.population) { sysdb.id_eddb = sys.id_eddb; sysdb.faction = sys.faction; sysdb.population = sys.population; sysdb.government = sys.government; sysdb.allegiance = sys.allegiance; sysdb.state = sys.state; sysdb.security = sys.security; sysdb.primary_economy = sys.primary_economy; sysdb.needs_permit = sys.needs_permit; sysdb.eddb_updated_at = sys.eddb_updated_at; sysdb.Update(cn, sysdb.id, tra); nr++; } sysdb = null; } else { System.Diagnostics.Trace.WriteLine("New system " + sys.name); sys.Store(cn, tra); } } System.Diagnostics.Trace.WriteLine("Add2DB " + nr.ToString() + " eddb systems: " + sw.Elapsed.TotalSeconds.ToString("0.000s")); tra.Commit(); sw.Stop(); System.Diagnostics.Trace.WriteLine("Add2DB " + nr.ToString() + " eddb systems: " + sw.Elapsed.TotalSeconds.ToString("0.000s")); } catch (Exception ex) { tra.Rollback(); System.Diagnostics.Trace.WriteLine("Add2DB error: {0}" + ex.Message); throw; } } } return true; }