做了一个 项目本地测了没问题发布到正式环境上,几天之后有个统计页面报错了,看了本地是正常的,
于是就排查,发现 ID 列 在转时候 由于用了 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
附几个相关地址:
16 进制与2进制的转换:https://blog.csdn.net/judongbin123/article/details/81093275。
Sqlserver数据库中char、varchar、nchar、nvarchar的区别及查询表结构 :https://www.cnblogs.com/liuqifeng/p/10405121.html
为什么nvarchar(10)可以存10个汉字,varchar(10)只能存5个汉字 :https://zhidao.baidu.com/question/233079122.html