static void MainThread() { try { //check status db if (!StatusRefresh.CheckStatusDBConnect(projectid)) { Console.WriteLine("Can not connect datacake db or project ID is not exists! The process status will not update!"); } else { CanUpdateStatus = true; } //init target db; MysqlClass.InitDatabasePara(DataBaseName); if (MysqlClass.ConnectDb() == null) { Console.WriteLine("Can not connect target database,please check setting! press any key to exit!"); Logging.LogStop(); return; } //check logfile string logfoldname = ConfigurationManager.AppSettings["LogFoldName"]; string folderpath = logpath + "\\" + logfoldname; DirectoryInfo di = new DirectoryInfo(folderpath); if (!di.Exists) { Console.WriteLine("Wrong Path, Try To Use Application Current Path!"); DirectoryInfo cdi = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory + "LogFoldName"); if (!cdi.Exists) { Console.WriteLine("Wrong Path, application will close!"); Logging.LogStop(); return; } } CSVToDB.Process(folderpath, projectid, DataBaseName); } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { Logging.LogStop(); } Logging.LogStop(); }
public static void Process(string logpath, string RecordID, string TargetDBName) { try { string filelist = ConfigurationManager.AppSettings["LoadList"]; string[] files = filelist.Split(','); if (Tools.CheckFileList(logpath, filelist) < 0) { Logging.WriteLog("SystemError", "Missing necessary csv data files"); StatusRefresh.UpdateStatus(RecordID, "-1", "0/" + files.Length.ToString(), "Missing necessary csv data files"); return; } Dictionary <string, DataTable> csvtables = Tools.GetDatatable(logpath, filelist); ddt = csvtables; int count = 0; foreach (KeyValuePair <string, DataTable> keyValue in csvtables) { string tablename = keyValue.Key; DataTable data = keyValue.Value; //if (tablename != "cl_flag") //{ CleanDB(TargetDBName, tablename); Logging.WriteLog("TableProcessing", "Process " + tablename + " Start"); BulkWriteRecordToDB(tablename, data, TargetDBName); //} count++; StatusRefresh.UpdateStatus(RecordID, "1", count.ToString() + "/" + files.Length.ToString(), "Process " + tablename + " complete!"); } ddt.Clear(); GC.Collect(); StatusRefresh.UpdateStatus(RecordID, "2", count.ToString() + "/" + files.Length.ToString(), "Process Done!"); } catch (Exception ex) { Logging.WriteLog("SystemError in Class CSVToDB", ex.Message); StatusRefresh.UpdateStatus(RecordID, "-1", "", ex.Message); return; } }