作者tomex (tomex_ou)
看板C_Sharp
標題[心得] DataGrid的進階排序技巧
時間Mon May 16 09:37:22 2005
DataGrid是顯示資料的container,雖然它提供簡易的排序
但假如你要做到特殊的計算及排序,可能不知如何著手
這兒提供我的一點經驗給大家測試看看...
顯示的資料流:
Database -> DataTable -> DataView -> DataGrid
由資料流,我們首先可以在sql指令作簡易第一階排序(sort)及過濾(filter)
讀入DataTable,它的 dt.Rows(Columns).Filter()也可以過濾資料
但其dt.Sort倒沒啥用處(你可要試看看)。
而且DataTable的Column.Expression(運算)及Filter在過濾資料很有用
因此得出DataTable的重點在於第2階filter,而非進行第2階的sort。
DataView則更加一步filter及sort資料,尤其它的sort只是顯示
不會把資料位置弄亂,因此第2階的sort應該在DataView解決。
最後,DataGrid只是顯示,或可再針對某欄位進行expression/sort!
結論:
一道sql指令很難得到我們想要的result,連下sql指令又浪費效能
建議把資料撈回dataset中,再進行上述的express/filter/sort
得到真正要的資料。它也可以group by及進行sum()/max()等運算喔...
--
貫徹分享精神
我為人人,人人為我
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.78.132.15
推 seagal:推推 59.120.34.104 05/16
→ seagal:想不到 59.120.34.104 05/16
→ seagal:DataTable竟然有Group By的功能 59.120.34.104 05/16
→ seagal:說錯DataSet 59.120.34.104 05/16