做了一個 項目本地測了沒問題發佈到正式環境上,幾天之後有個統計頁面報錯了,看了本地是正常的, 於是就排查,發現 ID 列 在對 字元串轉int 時候 由於用了 Convert.TonInt16 長度不夠, 資料庫的ID 已經到了33000。 自己也知道 Convert.TonInt16 、 Conv ...
做了一個 項目本地測了沒問題發佈到正式環境上,幾天之後有個統計頁面報錯了,看了本地是正常的,
於是就排查,發現 ID 列 在對 字元串轉int 時候 由於用了 Convert.TonInt16 長度不夠, 資料庫的ID 已經到了33000。 自己也知道 Convert.TonInt16 、
Convert.TonInt32、Convert.TonInt64、int.parse 使用有區別的, 但是做項目時候沒想到這裡來,隨手就來了一個 int16 ,
這麼一隨手日後就有bug了,以後寫代碼要嚴謹點。又去溫習了一遍每種使用的範圍。
int 範圍 -2,147,483,648 到 2,147,483,647
int16-數值範圍:-32768 到 32767
int32-數值範圍:-2,147,483,648 到 2,147,483,647
int64-數值範圍:-9223372036854775808 到 9223372036854775808
附一個別人的地址:https://blog.csdn.net/judongbin123/article/details/81093275,寫的是 16 進位與2進位的轉換。
https://www.cnblogs.com/liuqifeng/p/10405121.html 這個地址是解讀 Sqlserver資料庫中char、varchar、nchar、nvarchar的區別及查詢表結構
https://zhidao.baidu.com/question/233079122.html 為什麼nvarchar(10)可以存10個漢字,varchar(10)只能存5個漢字