web-dev-qa-db-ja.com

C#のbigintと同等のものは何ですか?

SQL#ServerデータベースのbigintであるC#で値を処理するときに使用するものは何ですか?

186
Asad Butt

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

データベースからの番号が十分に小さく、誤ってInt32などを使用した場合でも、問題ありません。しかし、Int64は間違いなくそれを保持します。

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

309
Patrick Karcher

Int64は、BigIntに直接マップします。

ソース

54
ChaosPandion

挿入の主キーを返すスクリプトがあり、

SELECT @@identity

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

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

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

... BigIntは、どれほど似ていてもINT64と同じではありません。理由の一部は、SQLが通常の処理の一部としてInt/BigIntを数値に頻繁に変換することです。したがって、OLEまたは.NETに移動する場合、必要な変換はNUMERICからINTになります。

印刷された値は同じように見えるため、私たちはしばしば気付きません。」

10
Robb Sadler

longタイプまたはInt64を使用できます

5
user5095242

長いデータ型を使用します。

4
Otávio Décio

同等のものはInt64だと思います

2
John Boker

intsqlはint32に直接マップします。 intinC#に対して

bigintSql Serverは、int64に直接マップし、プリミティブ型としても知られていますすなわち、longinC#

Bigintegerから整数への明示的な変換が定義されている場合 here

1
Technacron