private void LoadStockTransactionToSqlFromSource(string code, List <DateTime> tradingDates) { var existedDateInSql = GetExistedDateInSql(code, tradingDates.First(), tradingDates.Last()); var nonExistedDateIntervalInSql = Computor.GetNoExistedInterval <DateTime>(tradingDates, existedDateInSql); foreach (var item in nonExistedDateIntervalInSql) { var dt = dataSource.Get(code, item.Key, item.Value); sqlWriter.InsertBulk(dt, "[DailyTransaction].[dbo].[Stock]"); } }
private void LoadStockTransactionToRedisFromSql(string code, List <DateTime> tradingDates) { var existedDateInRedis = GetExistedDateInRedis(code, tradingDates.First(), tradingDates.Last()); var nonExistedDateIntervalInRedis = Computor.GetNoExistedInterval <DateTime>(tradingDates, existedDateInRedis); if (nonExistedDateIntervalInRedis != null && nonExistedDateIntervalInRedis.Count > 0) { string sqlStr = GenerateSqlString(code, nonExistedDateIntervalInRedis); var dt = sqlReader.GetDataTable(sqlStr); WriteToRedis(code, dt); } }
private void LoadStockTransactionToSqlFromSource(string code, List <DateTime> tradingDates) { IdentifyOrCreateDBandDataTable(); var existedDateInSql = GetExistedDateInSql(code, tradingDates.First(), tradingDates.Last()); var nonExistedDateIntervalInSql = Computor.GetNoExistedInterval <DateTime>(tradingDates, existedDateInSql); foreach (var item in nonExistedDateIntervalInSql) { var dt = dataSource.Get(code, item.Key, item.Value); //数据需要清洗一遍,为NaN的数据变成0 foreach (DataRow dr in dt.Rows) { for (int i = 2; i < dt.Columns.Count; i++) { if (double.IsNaN(Convert.ToDouble(dr[i])) == true) { //dr[i] = 0; dr[i] = DBNull.Value; } } } sqlWriter.InsertBulk(dt, "[DailyTransaction].[dbo].[StockOption]"); } }