COCO研究院

 找回密碼
 註冊
搜索
查看: 4048|回復: 6

[API] 請教Datatable排序問題

[複製鏈接]
發表於 17-11-26 12:07 | 顯示全部樓層 |閱讀模式
請教各位大大,我接收股票資料到datatable(dt1),如圖一所示,我想將這十檔股票資料依成交量(volume)由大到小做排序之後,抓前六檔放入dt2,如圖二所示;請教各位大大這語法要如何撰寫.
圖一.png

圖二

圖二

發表於 17-11-26 13:09 | 顯示全部樓層
INSERT INTO dt2
SELECT TOP 6 FROM dt1 ORDER BY VOLUME
發表於 17-11-26 15:11 | 顯示全部樓層
shunyulu 發表於 17-11-26 13:09
INSERT INTO dt2
SELECT TOP 6 FROM dt1 ORDER BY VOLUME

小 BUG: ORDER BY VOLUME DESC (由大排到小)
發表於 17-11-26 16:22 | 顯示全部樓層
感謝分享   
 樓主| 發表於 17-11-26 21:42 | 顯示全部樓層
小弟剛使用Visual studio平台不久,對程式語法還不是很熟,可否請前輩們提供程式碼,讓我可以比較容易理解.感激不盡!!
發表於 17-11-26 22:23 | 顯示全部樓層
隨便寫寫, this is VB, 可能有typo, 用LINQ更快, 不過你是初學者就這樣做.
要先Imports進來datatable的命名空間System.Data

Dim dt1 as new datatable
Dim dv1 as dataview
Dim dc as datacolumn
Dim dt2 as new datatable
Dim dr as datarow
Dim i as integer

'..... create 你要的data column
dc = new datacolumn()
dc.Name = "StockCode"
dc.DataType = Type.[GetType]("System.String")
dt1.columns.add(dc)
'.....
'..... create whatever columns 你要的

'把你要的資料新增到dt1
dr = dt1.newrow
dr("StockCode") = ???
dr("FieldName2") = ???
dt.rows.add(dr)

'我喜歡用dataview, 用datatable直接排序也行
dv1 = new dataview(dt1)
dv1.Sort = "Volumn DESC"

' create 你要的 dt2, 或是直接複製dt1的結構
for i = 0 to 5
dr = dt2.NewRow
  dr("FieldName1") = dv1(i)("FieldName1")
  dr("FieldName2") = dv1(i)("FieldName2")
.......
  '把資料列複製到dt2
dt2.rows.add(dr)
Next

'甘巴爹
 樓主| 發表於 17-11-27 21:59 | 顯示全部樓層
寫的很詳細,謝謝shunyulu大提供的程式碼!
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-11-2 20:21

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 |