坎尼無意間發現這個很神奇的東西
大家都知道 當 DataView 要排序時 要給予 .Sort 屬性
不過 大家知道給予 .Sort 屬性時 DataView 裡的資料會怎樣變化嗎?
「不就是排序過的資料?!」對啊 坎尼也是這麼認為
但在 vs2005 + .net 2.0 的環境下測試 咦? 似乎不是?!
來看一下測試的抓圖
坎尼在取得資料的部分 加上兩個中斷點 (其他相關程式碼 請見 這裡 )
然後在 CustomerID 排序為 Desc 時 進入中斷點
下圖為排序前 可以看到 Visualizer 裡的資料的確是未排序
按下 F5 到下一個中斷點
先確認一下目前的排序 的確是 customerId Desc
再來看一下DataView裡的資料
呃 怎麼會是排序前的資料呢 (抓頭
但是畫面上卻又是排序過的資料
但當前幾天坎尼準備寫 blog 時
卻發現這個現象不見了 當場嚇出了一天份的尿
難不成...這飄月連程式也會跟著飄嗎??! (見下面抓圖)
排序前的資料...恩 一樣
也的確是 customerId Desc
!!?
出現了 排序後的資料
好啦 一般靈異現象都會有的解答時間到了 XD
不知各位有沒有發現 其實圖中的某些東西不太一樣???
相信大家看到這 會把頁面再捲上去 仔細的看程式碼
「不是一樣嗎?」
沒錯 程式碼當然一樣 (被鐵槌打飛
重點是....環境不一樣
前半段的抓圖是 vs 2005 + .net 2.0
後半段是 vs 2008 + .net 3.5
所以坎尼試想了兩種可能性
第一種
.net 2.0 中 DataView 資料其實未排序
只是在容器(GridView)要顯示資料時,會讀取 Sort 屬性是否有值
然後要在顯示時 再由容器去排序
第二種
單純的是 Visualizer 的 bug ,它只是忘了去看 Sort 屬性是否有值
就在剛剛 坎尼突然想到 若是 vs2008 + .net 2.0 呢?
於是又開了個新專案 Target 指向 .Net Framework 2.0
程式碼複製過來 再按下 F5
想知道結果嗎? 下次再告訴... (被踢了一腳
好啦 結果會和後半段的測試一樣 Visualizer 看到的資料會是排序過的
所以坎尼是偏向後者的推論 可能是 Visualizer 當初設計時的 bug
不過這些都要問 MS 的開發 Team
飄月過了 飄程式也要少出現啊 哈哈
訂閱:
張貼留言 (Atom)
Google Spreadsheet 裡用規則運算式
最近因為工作關係,遇到要用 Google Form 及 Google Sheet 所以研究了 Google Sheet 裡的一些 function 怎麼用 首先,分享一下如何在 Google Sheet 裡用規則運算 :D
-
今天坎尼去上課老師講了一題很有趣的題目 所以回到家坎尼就順手試驗了一下 I. XOR (exclusive OR) XOR 是邏輯運算子之一,定義為: 當兩數的值不同才為 true,相同則為 false 其他相關說明可以參考 維基百科:XOR II. 程式 以往的做法會宣...
-
今天測試了從 phpMyAdmin 介面將 MySQL DB 中的中文資料匯出成 .csv 檔,原本想說既然中文資料可以正確以 utf-8 編碼存入 MySQL,在 phpMyAdmin 的網頁介面上也可以正常顯示,之前匯出成 .sql 檔也沒有亂碼問題,那匯出 .csv 這種...
-
雖然到最後你還是沒留下你的名字... 今天就來介紹一下,如何用程式撰寫多維 矩陣乘法運算 首先要了解一下矩陣乘法的計算方式 (m1 x n1) * (m2 x n2) 結果會是 (m1 x n2)的矩陣 上例中的 n1 = m2 矩陣乘法位置互換結果就會不同 (大家可以直接點上方...
沒有留言:
張貼留言