public static void MergeTempWithHisto(GlobalObjects.TimeInterval T) { var dc = new AlsiDBDataContext(); switch (T) { case (GlobalObjects.TimeInterval.Minute_5): //Must be 2000 prices in db for accurate calcs if (dc.OHLC_5_Minutes.Count() < 20100) throw new IndexOutOfRangeException(); var last1000Prices = dc.OHLC_5_Minutes.Skip(Math.Max(0, dc.OHLC_5_Minutes.Count() - 20000)).Take(20000); dc.Clean_OHLC_Temp_2(); DataTable MinData = new DataTable("MinData"); MinData.Columns.Add("Stamp", typeof(DateTime)); MinData.Columns.Add("O", typeof(int)); MinData.Columns.Add("L", typeof(int)); MinData.Columns.Add("H", typeof(int)); MinData.Columns.Add("C", typeof(int)); foreach (var p in last1000Prices) MinData.Rows.Add(p.Stamp, p.O, p.H, p.L, p.C); #region BulkCopy DataSet minuteDataSet = new DataSet("minuteDataset"); minuteDataSet.Tables.Add(MinData); SqlConnection myConnection = new SqlConnection(AlsiUtils.Data_Objects.GlobalObjects.CustomConnectionString); myConnection.Open(); SqlBulkCopy bulkcopy = new SqlBulkCopy(myConnection); bulkcopy.DestinationTableName = "OHLC_Temp_2"; bulkcopy.WriteToServer(MinData); Debug.WriteLine("Tick Bulk Copy Complete"); MinData.Dispose(); myConnection.Close(); #endregion dc.MergeTemp(); Debug.WriteLine("Merged Data"); break; } }