[問題] 使用.Compute("max( )")出現詭異結果

看板C_Sharp (C#)作者 (一定要暱稱嗎)時間12年前 (2013/09/08 06:57), 編輯推噓0(005)
留言5則, 3人參與, 最新討論串1/2 (看更多)
我有一個datatable,其中一欄是"VOL",使用 int maxLavel = Convert.ToInt32(flow.Compute("max(VOL)", string.Empty)); 來取VOL這欄的最大值, 當VOL裡面的值是0~6XXX時, 結果得出來的數字只能是"一千以下的最大數", 例如: VOL --- 6102 940 1642 245 那得到的maxLavel會是940, 接著嘗試修改VOL的值,倘若是1642,940,9999,245 卻又可以得到9999, 另外,如果同樣都是四位數,如1234,4567,6789,9876 也可以得到9876, 所以很納悶的是,當同時有三位數和四位數去取max的時候, 好像過某個臨界值之前,會取一千以下的最大數,過了之後才會取四位數的最大數, 不曉得板上有高手知道這是為甚麼嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.35.182.132

09/08 09:00, , 1F
你的 VOL 欄位是什麼型別?
09/08 09:00, 1F

09/08 09:57, , 2F
是string
09/08 09:57, 2F

09/08 10:51, , 3F
你的回覆給了答案 字串排序和數字排序 當然不一樣
09/08 10:51, 3F

09/08 10:52, , 4F
多加1個數字欄位 或select時就先轉number
09/08 10:52, 4F

09/08 11:22, , 5F
感恩 來try try看
09/08 11:22, 5F
文章代碼(AID): #1IAwzURa (C_Sharp)
文章代碼(AID): #1IAwzURa (C_Sharp)