public void ReadFileLineByLine(TrainsDb_200123Context db, FileInfo file) { using (var sr = new StreamReader(file.FullName, Encoding.GetEncoding("ISO-8859-1"))) { sr.ReadLine(); if (false) { using (var sw = new StreamWriter(@"D:\merge.csv", true)) sw.Write(sr.ReadToEnd()); Console.Write("."); } else { int count = 0; string line; while ((line = sr.ReadLine()) != null) { count++; var train = new Trains(); //Trains.FromCsv(line); //db.Trains.Add(train); } db.SaveChanges(); Console.WriteLine($"Importet file: {file.Name}"); Console.WriteLine($"Records: {count}"); } } }
public async Task ExportCsvToMySQL <T>(string myDirPath) where T : class { using (var db = new TrainsDb_200123Context()) { DirectoryInfo d = new DirectoryInfo(myDirPath); //Assuming Test is your Folder FileInfo[] Files = d.GetFiles("*.csv"); foreach (FileInfo file in Files) { FileHelpers.FileHelperEngine <T> engine = new FileHelpers.FileHelperEngine <T>(Encoding.GetEncoding("ISO-8859-1")); engine.HeaderText = engine.GetFileHeader().Remove(0, 3); engine.ErrorManager.ErrorMode = FileHelpers.ErrorMode.SaveAndContinue; T[] trains = engine.ReadFile(file.FullName); //Array.ForEach(trains, e => e.Id = 0); await db.AddRangeAsync(trains); await db.SaveChangesAsync(); /* * int count = 0; * foreach (var train in trains) * { * count++; * train.Id = 0; * db.CzPreosGtn.Add(train); * db.SaveChanges(); * } */ if (engine.ErrorManager.HasErrors) { engine.ErrorManager.SaveErrors($"{myDirPath}\\err-{file.Name}.out"); } Console.WriteLine($"Importet file: {file.Name}"); //Console.WriteLine($"Records: {count}"); //ReadFileLineByLine(db, file); } Console.WriteLine($"finished: {myDirPath}"); return; } }