什么是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。

您可以使用longtypes或Int64

我认为相当于Int64

在SQL中int直接映射到int32也知道作为一个原始types,即intC#中,

sql中的bigint直接映射到int64,也被称为基本types,即浮点C#

如果biginteger为整数,则在此处定义明确的转换

我正在处理一个bigint数据types,以显示在一个DataGridView中,并像这样

 something = (int)(Int64)data_reader[0];