2010-01-21 116 views

回答

247

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

但如果从数据库中数恰好是足够小,你不小心用一个Int32,等等,你会没事的。但Int64一定会拥有它。

如果您使用较小的东西而需要全尺寸,则会出现错误? 堆栈溢出!耶!

+77

确定它不是整数溢出? – luqui 2012-08-09 16:38:57

+3

有关更多数据类型的良好参考:http://msdn.microsoft.com/en-us/library/system.data.sqldbtype.aspx – MacGyver 2012-08-17 14:47:40

+1

递归堆栈溢出... – Nate 2013-08-30 13:25:27

43

Int64直接映射到BigInt

Source

+3

的显式转换为Int64类型/ – 2010-01-21 22:52:20

+9

是长其他名称。 'long'关键字是'System.Int64'的别名。 – 2010-01-21 22:52:55

3

使用长数据类型。

2

我认为相当于是Int64的

9

我不得不返回了插入的主键,在我的BIGINT主键使用

SELECT @@identity 

一个脚本,我得到使用强制错误长 - 这就是我开始搜索的原因。至少在我的情况下,正确的答案是,通过选择返回的类型是数字这相当于十进制类型。使用long将导致强制异常。

这是一个原因,检查你的答案不止一个谷歌搜索(甚至在堆栈溢出!)。

引述一名数据库管理员谁帮我出:

... BigInt有不一样的INT64不管多少他们看起来很相像。部分原因是,SQL会频繁转换内部/ BigInt有以数字作为正常处理的一部分。因此,当它进入OLE或.NET所需的转换是数字为int。

我们不常看到由于印刷值看起来是相同的。”

+0

感谢您的数字提示..只是帮助我出去大好时光! – jpshook 2011-10-26 20:41:29

+0

刚刚帮助我,阅读BigInt Scope_Identity – cost 2013-05-22 06:25:28

+6

由于SCOPE_IDENTITY和@@ IDENTITY返回NUMERIC(38,0),您得到了一个转换错误,这并不是因为您的BigInt PK不适合C#Int64。换句话说,BigInt _is_与Int64相同,但通过SCOPE_IDENTITY或@@ IDENTITY返回的BigInt值可能会被上转换为NUMERIC(38,0)。 – Dan 2014-01-05 13:21:27

0

我正在处理一个Bigint数据类型在一个DataGridView显示搞得像这样

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

你试图沮丧吗? – Technacron 2017-05-14 00:20:11

3

你可以使用long型或Int64

2

INT在SQL映射直接INT32也知道作为一个基本类型即在C#

BIGINT在SQL映射直接的int64 INT还知道作为一个原语类型i。È浮子C#

如果BigInteger的整数到已定义here

相关问题