欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Sqlserver数据库中char、varchar、nchar、nvarchar的区别及查询表结构

程序员文章站 2022-06-05 17:21:01
做了一个 项目本地测了没问题发布到正式环境上,几天之后有个统计页面报错了,看了本地是正常的, 于是就排查,发现 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 

 

 

附一个别人的地址:,写的是 16 进制与2进制的转换。

 

 

 这个地址是解读  sqlserver数据库中char、varchar、nchar、nvarchar的区别及查询表结构

  为什么nvarchar(10)可以存10个汉字,varchar(10)只能存5个汉字