在处理C#中的值时我应该使用什么,这对于SQL Server数据库来说是非常重要的?
答案 0 :(得分:306)
这对应于长(或 Int64 ),即64位整数。
虽然如果数据库中的数字恰好足够小,并且您不小心使用了Int32等,那么你会没事的。但是 Int64 肯定会持有它。
如果你使用更小的东西并且需要全尺寸,你会得到错误吗? 堆栈溢出!耶!
答案 1 :(得分:54)
Int64
直接映射到BigInt
。
答案 2 :(得分:10)
我刚刚有一个脚本返回了插入的主键并使用了
SELECT @@identity
在我的bigint主键上,我使用long得到了一个强制转换错误 - 这就是我开始搜索的原因。至少在我的情况下,正确的答案是该选择返回的类型是NUMERIC,它等同于十进制类型。使用long将导致强制转换异常。
这是在多个Google搜索中检查答案的一个原因(甚至是Stack Overflow!)。
引用帮助我的数据库管理员:
... BigInt与INT64不同,无论它们看起来多么相似。部分原因是SQL会经常将Int / BigInt转换为Numeric作为正常处理的一部分。因此,当它转到OLE或.NET时,所需的转换是NUMERIC到INT。
我们通常不会注意到,因为印刷的价值看起来是一样的。“
答案 3 :(得分:5)
您可以使用long
类型或Int64
答案 4 :(得分:4)
使用长数据类型。
答案 5 :(得分:2)
我认为等效的是Int64
答案 6 :(得分:1)
如果定义了biginteger到整数,则显式转换here
答案 7 :(得分:0)
在大多数情况下,在c#中都是long(int64)
答案 8 :(得分:0)
如果您在数据库表中使用 bigint ,则可以在C#中使用 Long
答案 9 :(得分:0)
int(64) 或 long 数据类型相当于 BigInt。
答案 10 :(得分:-2)
我正在处理一个bigint数据类型,以便在DataGridView中显示并使其像这样
something = (int)(Int64)data_reader[0];