2010-01-21 128 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