コード例 #1
0
        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;
            }


        }