C#中bigint的等价物是什么?

Asa*_*sad 198 .net c# sql-server bigint

我在处理C#中的值时应该使用什么,这对于SQL Server数据库来说是个bigint?

Pat*_*her 333

这对应于long(或Int64),一个64位整数.

虽然如果数据库中的数字恰好足够小,并且你不小心使用了Int32等,你会没事的.但Int64肯定会持有它.

如果你使用更小的东西并且需要全尺寸,你会得到错误吗?堆栈溢出!好极了!

  • 当然不是整数溢出? (94认同)
  • 更多数据类型的良好参考:http://msdn.microsoft.com/en-us/library/system.data.sqldbtype.aspx (5认同)
  • 在C#中,`long`没有大写. (2认同)

Cha*_*ion 56

Int64直接映射到BigInt.

资源

  • 是.`long`关键字是`System.Int64`的别名. (11认同)
  • 是Int64的其他名称/ (3认同)

小智 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.

我们不经常注意到,因为印刷的价值看起来是一样的."

  • 你有一个强制转换错误,因为SCOPE_IDENTITY和@@ IDENTITY返回NUMERIC(38,0),不是因为你的BigInt PK不适合C#Int64.换句话说,BigInt _is_与Int64相同,但通过SCOPE_IDENTITY返回的BigInt值或@@ IDENTITY可以上转换为NUMERIC(38,0). (8认同)

Otá*_*cio 5

使用长数据类型。


小智 5

您可以使用longtype或Int64