SQL#ServerデータベースのbigintであるC#で値を処理するときに使用するものは何ですか?
これは、64ビット整数のlong(またはInt64)に対応します。
データベースからの番号が十分に小さく、誤ってInt32などを使用した場合でも、問題ありません。しかし、Int64は間違いなくそれを保持します。
そして、より小さなものを使用してフルサイズが必要な場合に発生するエラーは? スタックオーバーフロー!イェーイ!
Int64
は、BigInt
に直接マップします。
挿入の主キーを返すスクリプトがあり、
SELECT @@identity
私のbigint主キーで、longを使用してキャストエラーが発生しました-それがこの検索を開始した理由です。少なくとも私の場合、正しい答えは、そのselectによって返される型はNUMERICであり、これは10進数型に等しいということです。 longを使用すると、キャスト例外が発生します。
これは、複数のGoogle検索(またはStack Overflow!)で回答を確認する1つの理由です。
私を助けてくれたデータベース管理者を引用するには:
... BigIntは、どれほど似ていてもINT64と同じではありません。理由の一部は、SQLが通常の処理の一部としてInt/BigIntを数値に頻繁に変換することです。したがって、OLEまたは.NETに移動する場合、必要な変換はNUMERICからINTになります。
印刷された値は同じように見えるため、私たちはしばしば気付きません。」
long
タイプまたはInt64
を使用できます
長いデータ型を使用します。
同等のものはInt64だと思います
intsqlはint32に直接マップします。 intinC#に対して
bigintSql Serverは、int64に直接マップし、プリミティブ型としても知られていますすなわち、longinC#
Bigintegerから整数への明示的な変換が定義されている場合 here