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;
            }
        }