C# string.Compare 的誤用
這是花了我幾個小時的經驗
值得記錄
但正常的設計應該不會遇到相同的狀況
記錄提醒自已,別再錯了
背景說明:
1-DB資料庫存值是用NVARCAHR的字串,但存入時,也把數字當字串存檔
2-在C#取出數字或字串後,直接用string.Compare做比對
3-在測試字串跟 數字轉字串時,string.Compare比對的值跟預想的不同,字串比對正確,但是數字轉字串比對卻是反的
其實string.Compare是正確的,是我想錯了
因為數字轉字串用string.Compare比較就不對了
數字就該用數字的比對,而不是用字串
反推就是我沒有認清數字
從DB直接取值後,就當字串處理
結果當然不對
結論
在程式中,是數字就用數字判斷
字串才字串判斷
DB存檔時,如果是數字型別也要用數字型態
只是如果遇到要同時存字串或數字時
程式也要做不同型別來處理
別字串用到底
自我LV~