Asa*_*sad 198 .net c# sql-server bigint
我在处理C#中的值时应该使用什么,这对于SQL Server数据库来说是个bigint?
Pat*_*her 333
这对应于long(或Int64),一个64位整数.
虽然如果数据库中的数字恰好足够小,并且你不小心使用了Int32等,你会没事的.但Int64肯定会持有它.
如果你使用更小的东西并且需要全尺寸,你会得到错误吗?堆栈溢出!好极了!
小智 10
我刚刚有一个脚本返回插入的主键并使用了
SELECT @@identity
Run Code Online (Sandbox Code Playgroud)
在我的bigint主键上,我得到一个使用long的强制转换错误 - 这就是我开始搜索的原因.至少在我的情况下,正确的答案是该选择返回的类型是NUMERIC,它等同于十进制类型.使用long将导致强制转换异常.
这是在多个Google搜索中检查答案的一个原因(甚至是Stack Overflow!).
引用帮助我的数据库管理员:
... BigInt与INT64不同,无论它们看起来多么相似.部分原因是SQL会经常将Int/BigInt转换为Numeric作为正常处理的一部分.因此,当它转到OLE或.NET时,所需的转换是NUMERIC到INT.
我们不经常注意到,因为印刷的价值看起来是一样的."