什么是C#中的bigint相当于?
在C#中处理一个值时,我应该使用什么,这对于SQL Server数据库来说是bigint?
这对应于long (或Int64 ),一个64位整数。
虽然如果数据库中的数字恰好足够小,并且不小心使用了Int32等,那么您将会好起来的。 但是Int64肯定会持有它。
如果你使用更小的东西,并且需要全尺寸,那么你得到的错误是? 堆栈溢出! 好极了!
Int64
直接映射到BigInt
。
资源
我只是有一个脚本,返回插入的主键,并使用了一个
SELECT @@identity
在我的bigint主键,我得到一个长期的铸造错误 – 这就是为什么我开始这个search。 至less在我的情况下是正确的答案是由该select返回的types是NUMERIC相当于一个十进制types。 使用long将导致强制exception。
这是在多个Googlesearch中(甚至是堆栈溢出)检查您的答案的原因之一。
引用一位帮助我的数据库pipe理员:
BigInt与INT64不一样,不pipe它们看起来多么相似。 其中一部分原因是SQL将经常将Int / BigInt转换为数字,作为正常处理的一部分。 所以当它到达OLE或.NET时,所需的转换是NUMERIC到INT。
我们并不经常注意,因为印刷的价值看起来是一样的。“
使用长数据types。
您可以使用long
types或Int64
我认为相当于Int64
在SQL中int直接映射到int32也知道作为一个原始types,即int在C#中,而
sql中的bigint直接映射到int64,也被称为基本types,即浮点在C#
如果biginteger为整数,则在此处定义明确的转换
我正在处理一个bigint数据types,以显示在一个DataGridView中,并像这样
something = (int)(Int64)data_reader[0];