C#のbigintに相当するものは何ですか?


209

C#で値を処理するときに何を使用することになっていますか。これは、SQL Serverデータベースでは重要です。

回答:


354

これは、64ビット整数のlong(またはInt64)に対応します。

ただし、データベースの数がたまたま少なくて、誤ってInt32などを使用した場合は問題ありません。しかし、Int64は間違いなくそれを保持します。

そして、小さいものを使用し、フルサイズが必要な場合に発生するエラーは?スタックオーバーフロー!わーい!


100
整数オーバーフローではないですか?
12

6
その他のデータ型のリファレンス:msdn.microsoft.com/en-us/library/system.data.sqldbtype.aspx
MacGyver

3
C#では、long大文字は使用されません。
Shawn Kovac 2014年

datetimeをlongに変換しますか?
Kiquenet


12

挿入の主キーを返すスクリプトを使用して、

SELECT @@identity

私のbigint主キーで、longを使用するとキャストエラーが発生します。そのため、この検索を開始しました。少なくとも私の場合の正解は、その選択によって返される型が10進数型に等しいNUMERICであるということです。longを使用すると、キャスト例外が発生します。

これが、複数のGoogle検索(またはStack Overflowでも)で回答を確認する1つの理由です。

私を助けてくれたデータベース管理者を引用すると:

... BigIntは、どのように見えても、INT64と同じではありません。その理由の1つは、SQLがInt / BigIntを通常の処理の一部として数値に頻繁に変換するためです。したがって、OLEまたは.NETの場合、必要な変換はNUMERICからINTです。

印刷された値は同じに見えるため、多くの場合、気づきません。」


数値のヒントをありがとう..ちょうど私を大いに助けた!
jpshook 2011年

8
SCOPE_IDENTITYおよび@@ IDENTITYがNUMERIC(38、0)を返すため、キャストエラーが発生しました。BigIntPKがC#Int64に適合しないためではありません。つまり、BigInt Int64と同じですが、SCOPE_IDENTITYまたは@@ IDENTITYを通じて返されるBigInt値はNUMERIC(38、0)にアップコンバートされる可能性があります。
Dan Hermann

ダン、ありがとう。参考までに、SQL Azure(RTM)でも引き続き発生-12.0.2000.8&.NET v 4.5
Gunnar


6

あなたが使用できるlongタイプかInt64



1

sqlのintは、int32に直接マップされます。また、C#のintはプリミティブ型としても知られていますが、

BIGINT SQL Serverの中には、に直接マップint64モードもすなわち、プリミティブ型として知っているロングのC#

bigintegerからintegerへの定義がここで定義さている場合の明示的な変換



0

データベーステーブルでbigintを使用している場合は、C#でLongを使用できます。


-3

私はDataGridViewに表示されるbigintデータ型を処理し、次のようにしました

something = (int)(Int64)data_reader[0];
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.