private string SqlStringConcat(CTASPWordDefine DataUnit) { return("(\"" + DataUnit.contractid + "\",\" " + DataUnit.contractname + "\",\"" + DataUnit.tdatetime + "\"," + DataUnit.lastpx + "," + DataUnit.highpx + "," + DataUnit.lowpx + "," + DataUnit.cq + "," + DataUnit.tq + "," + DataUnit.lastqty + "," + DataUnit.initopenints + "," + DataUnit.openints + "," + DataUnit.intschg + "," + DataUnit.turnover + "," + DataUnit.riselimit + "," + DataUnit.falllimit + "," + DataUnit.presettle + "," + DataUnit.preclose + "," + DataUnit.s1 + "," + DataUnit.b1 + "," + DataUnit.sv1 + "," + DataUnit.bv1 + "," + DataUnit.openpx + "," + DataUnit.closepx + "," + DataUnit.settlementpx + ",\"" + DataUnit.mflxid + "\"," + DataUnit.s5 + "," + DataUnit.s4 + "," + DataUnit.s3 + "," + DataUnit.s2 + "," + DataUnit.b2 + "," + DataUnit.b3 + "," + DataUnit.b4 + "," + DataUnit.b5 + "," + DataUnit.sv5 + "," + DataUnit.sv4 + "," + DataUnit.sv3 + "," + DataUnit.sv2 + "," + DataUnit.bv2 + "," + DataUnit.bv3 + "," + DataUnit.bv4 + "," + DataUnit.bv5 + "," + DataUnit.predelta + "," + DataUnit.currdelta + "," + DataUnit.chg + "," + DataUnit.chgpct + ")"); }
private string SqlStringConcat(CTASPWordDefine DataUnit, string tableName) { string ResStr = "INSERT INTO " + tableName + "(contractid,contractname,tdatetime,lastpx,highpx,lowpx ,cq,tq,lastqty,initopenints,openints,intschg " + ",turnover ,riselimit,falllimit,presettle,preclose,s1,b1,sv1,bv1,openpx,closepx,settlementpx,mflxid," + "s5,s4,s3,s2,b2,b3,b4,b5,sv5,sv4,sv3,sv2,bv2,bv3,bv4,bv5,predelta,currdelta,chg,chgpct)values(\"" + DataUnit.contractid + "\",\" " + DataUnit.contractname + "\",\"" + DataUnit.tdatetime + "\"," + DataUnit.lastpx + "," + DataUnit.highpx + "," + DataUnit.lowpx + "," + DataUnit.cq + "," + DataUnit.tq + "," + DataUnit.lastqty + "," + DataUnit.initopenints + "," + DataUnit.openints + "," + DataUnit.intschg + "," + DataUnit.turnover + "," + DataUnit.riselimit + "," + DataUnit.falllimit + "," + DataUnit.presettle + "," + DataUnit.preclose + "," + DataUnit.s1 + "," + DataUnit.b1 + "," + DataUnit.sv1 + "," + DataUnit.bv1 + "," + DataUnit.openpx + "," + DataUnit.closepx + "," + DataUnit.settlementpx + ",\"" + DataUnit.mflxid + "\"," + DataUnit.s5 + "," + DataUnit.s4 + "," + DataUnit.s3 + "," + DataUnit.s2 + "," + DataUnit.b2 + "," + DataUnit.b3 + "," + DataUnit.b4 + "," + DataUnit.b5 + "," + DataUnit.sv5 + "," + DataUnit.sv4 + "," + DataUnit.sv3 + "," + DataUnit.sv2 + "," + DataUnit.bv2 + "," + DataUnit.bv3 + "," + DataUnit.bv4 + "," + DataUnit.bv5 + "," + DataUnit.predelta + "," + DataUnit.currdelta + "," + DataUnit.chg + "," + DataUnit.chgpct + ")"; //Console.WriteLine("ResStr is: " + ResStr); return(ResStr); }
private void DataProcessFunc(FileInfo file, string fName, string dirName) { FileStream fs = file.Open(FileMode.Open, FileAccess.Read); StreamReader sr = new StreamReader(fs, Encoding.UTF8); string tableName = "CTA_HSFT_" + fName.Substring(0, 11 + dirName.Count()).ToUpper() + "_TBL"; Console.WriteLine("Table Name is: " + tableName); TableProcess(tableName); Console.WriteLine("--------"); Console.WriteLine("开始导入该文件的数据:" + file.FullName); Console.WriteLine("--------"); List <string> querys = new List <string>(); string line = null; int count = 0; string query = InitSqlString(tableName); while ((line = sr.ReadLine()) != null) { line = line.Replace("None", "null"); string[] tmpList = line.Split(','); if (tmpList.Length != 55) { //Guid guid = Guid.NewGuid(); //Log.AppendAllLines(this.columnErrLogDir + "Log" + guid.ToString() + @".txt", new string[5] { "-----------------------------------", "Time: " + DateTime.Now.ToString(),"文件:"+file.FullName, "出错数据:" + line, "-----------------------------------" }); continue; } CTASPWordDefine DataUnit = new CTASPWordDefine(); DataUnit.contractid = tmpList[0]; // 合约代码 DataUnit.contractname = tmpList[1]; // 合约名称 DataUnit.tdatetime = tmpList[2]; // 日期时间 DataUnit.lastpx = tmpList[3]; // 最新价 DataUnit.highpx = tmpList[4]; // 最高价 DataUnit.lowpx = tmpList[5]; // 最低价 DataUnit.cq = tmpList[6]; // 瞬时成交量 DataUnit.tq = tmpList[7]; // 累计成交量 DataUnit.lastqty = tmpList[8]; // 最新成交量 DataUnit.initopenints = tmpList[9]; // 初始持仓量 DataUnit.openints = tmpList[10]; // 持仓量 DataUnit.intschg = tmpList[11]; // 持仓量变化 DataUnit.turnover = tmpList[12]; // 成交额 DataUnit.riselimit = tmpList[13]; // 涨停板 DataUnit.falllimit = tmpList[14]; // 跌停板 DataUnit.presettle = tmpList[15]; // 昨结算 DataUnit.preclose = tmpList[16]; // 昨收盘 DataUnit.s1 = tmpList[17]; // 卖一 DataUnit.b1 = tmpList[18]; // 买一 DataUnit.sv1 = tmpList[19]; // 卖量一 DataUnit.bv1 = tmpList[20]; // 买量一 DataUnit.openpx = tmpList[21]; // 开盘价 DataUnit.closepx = tmpList[22]; // 收盘价 DataUnit.settlementpx = tmpList[23]; // 结算价 DataUnit.lifelow = tmpList[24]; // 历史最低价 DataUnit.lifehigh = tmpList[25]; // 历史最高价 DataUnit.avgpx = tmpList[26]; // 当日均价 DataUnit.bidimplyqty = tmpList[27]; // 申买推导量 DataUnit.askimplyqty = tmpList[28]; // 申卖推导量 DataUnit.side = tmpList[29]; // 买卖方向 DataUnit.mflxid = tmpList[30]; // 连续合约代码 DataUnit.s5 = tmpList[31]; // 卖五 DataUnit.s4 = tmpList[32]; // 卖四 DataUnit.s3 = tmpList[33]; // 卖三 DataUnit.s2 = tmpList[34]; // 卖二 DataUnit.b2 = tmpList[35]; // 买二 DataUnit.b3 = tmpList[36]; // 买三 DataUnit.b4 = tmpList[37]; // 买四 DataUnit.b5 = tmpList[38]; // 买五 DataUnit.sv5 = tmpList[39]; // 卖量五 DataUnit.sv4 = tmpList[40]; // 卖量四 DataUnit.sv3 = tmpList[41]; // 卖量三 DataUnit.sv2 = tmpList[42]; // 卖量二 DataUnit.bv2 = tmpList[43]; // 买量二 DataUnit.bv3 = tmpList[44]; // 买量三 DataUnit.bv4 = tmpList[45]; // 买量四 DataUnit.bv5 = tmpList[46]; // 买量五 DataUnit.predelta = tmpList[47]; // 昨虚实度 DataUnit.currdelta = tmpList[48]; // 今虚实度 DataUnit.localtime = tmpList[49]; // 本地时间 DataUnit.market = tmpList[50]; // 交易所 DataUnit.chg = tmpList[51]; // 涨跌 DataUnit.chgpct = tmpList[52]; // 涨跌幅 DataUnit.varieties = tmpList[53]; // 品种 DataUnit.unix = 0; // 时间戳 if (++count >= 200) { query += SqlStringConcat(DataUnit); querys.Add(query); query = InitSqlString(tableName); count = 0; } else { query += SqlStringConcat(DataUnit) + ","; } //string excutSql = SqlStringConcat(DataUnit, tableName); //querys.Add(excutSql); //this.conn.executeSqlNoPrm(excutSql); } if (count != 0) { query = query.TrimEnd(','); querys.Add(query); } BatchInsert_MySql bm = new BatchInsert_MySql(this.connStr); bm.ExecuteSqlTran(querys); Console.WriteLine("-------------"); Console.WriteLine("导入完成:" + file.FullName); Log.AppendAllLines(this.fileFinishRecordPath, new string[4] { "-----------------------------------", "Time: " + DateTime.Now.ToString(), "导入完成:" + file.FullName, "-----------------------------------" }); ++numFilesFinish; Console.WriteLine("导入进度:" + ((double)numFilesFinish / (double)numAllFiles) * 100 + "%"); Console.WriteLine("-------------"); }