none
關於抓取時間區間的資料方法 RRS feed

  • 問題

  • 我設計了一個程式希望可以抓取一段時間內的資料

    如:12/20~12/25之間的表格資料

    但目前只能抓出一天(12/20)的表格資料到dataGridVeiw裡面

    請問我該如何讓一段時間內每天的交易資料都可以傳到dataGridVeiw裡面????

    以下附上我的程式碼謝謝

     #region 抓<TR><TD>個數
            int Count1 = 0;
            int Count2 = 0;
            String InnerText = null;
            private void PrintRecursive1(TreeNode treeNode, DataTable dt)
            {
                DataRow dr = null;
                if (treeNode.Text == "<TBODY>")
                {
                    Count1 = treeNode.Nodes.Count;
                }
                for (int i = 0; i < Count1; i++)
                {
                    Count2 = treeView2.Nodes[0].Nodes[0].Nodes[1].Nodes[i].Nodes.Count;
                    dr = dt.NewRow();
                    for (int j = 0; j < Count2; j++)
                    {
                        InnerText = treeView2.Nodes[0].Nodes[0].Nodes[1].Nodes[i].Nodes[j].FirstNode.Text;
    
                        dr[j] = InnerText;
                    }
                    dt.Rows.Add(dr);
                }
                dataSet();           
            }
            #endregion

    #region 載入資料 private void clbtree_Click(object sender, EventArgs e) { dataSet1.Tables.Clear(); dataGridView1.DataSource = null; dataGridView1.Refresh(); dt.Clear(); PrintRecursive1(treeView2.Nodes[0].Nodes[0].Nodes[1], dt); } #endregion #region 設定dataGridVeiw標題 private void Form1_Load(object sender, EventArgs e) { ResetdataGridVeiw(); dt.Columns.Add(new DataColumn("證券代號", typeof(string))); dt.Columns.Add(new DataColumn("證券名稱", typeof(string))); dt.Columns.Add(new DataColumn("外資買進股數", typeof(string))); dt.Columns.Add(new DataColumn("外資賣出股數", typeof(string))); dt.Columns.Add(new DataColumn("投信買進股數", typeof(string))); dt.Columns.Add(new DataColumn("投信賣出股數", typeof(string))); dt.Columns.Add(new DataColumn("自營商買進股數", typeof(string))); dt.Columns.Add(new DataColumn("自營商賣出股數", typeof(string))); dt.Columns.Add(new DataColumn("三大法人買賣超股數", typeof(string))); //設定圖表 zedGraphControl1.GraphPane.Title.Text = "股票買賣折線圖"; //圖表的表頭 zedGraphControl1.GraphPane.XAxis.Title.Text = "時間"; //X軸的名稱 zedGraphControl1.GraphPane.YAxis.Title.Text = "金額"; //Y軸的名稱 } #endregion #region ResetdataGridVeiw private void ResetdataGridVeiw() { dataGridView1.AllowUserToAddRows = false; //指出是否已為使用者顯示可加入資料列的選項。 dataGridView1.AllowUserToDeleteRows = true; //指出是否允許使用者從 DataGridView 中刪除資料列。 dataGridView1.AllowUserToResizeColumns = true; //指出使用者是否可以調整資料行的大小。 dataGridView1.AllowUserToResizeRows = true; //指出使用者是否可以調整資料列的大小。 dataGridView1.TopLeftHeaderCell.Value = "reset"; //取得或設定位於 DataGridView 控制項左上角的標題儲存格。 dataGridView1.TopLeftHeaderCell.Style.ForeColor = System.Drawing.Color.Blue; dataGridView1.AutoGenerateColumns = true; //指出當設定了 DataSource 或 DataMember 屬性時,是否會自動建立資料行。 dataGridView1.ReadOnly = false; //指出使用者是否可以編輯 DataGridView 控制項的儲存格。 dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders; dataGridView1.BorderStyle = BorderStyle.Fixed3D; // Put the cells in edit mode when user enters them. //dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter; dataGridView1.DefaultCellStyle.WrapMode = DataGridViewTriState.True; //取得或設定 DataGridView 中的儲存格所要套用的預設儲存格樣式 //dataGridView1.SortedColumn.SortMode = DataGridViewColumnSortMode.Programmatic; } #endregion #region dataSet private void dataSet() { dataSet1.Tables.Add(dt); dataGridView1.DataSource = dataSet1.Tables[0]; dataGridView1.Columns[0].HeaderCell.Value = "證券代號"; dataGridView1.Columns[0].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; dataGridView1.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dataGridView1.Columns[0].Width = 80; } #endregion


    2014年1月2日 上午 03:29

解答

  • 您好,
    您目前的function可以取得某一天的,所以可以將它包成一個function傳入某日就傳回該日的資訊,所以如果是多日的話,就呼叫它多次來將資料合併起來!

    還是我有誤解您想要的東西呢?


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/


    • 已編輯 亂馬客 2014年1月3日 上午 07:25
    • 已標示為解答 sherry03 2014年1月4日 下午 02:39
    2014年1月3日 上午 07:24

所有回覆