ulong
C#.NETを T-SQL データベースに格納したいと考えています。bigint
SQLには通常の と同じ Min/Max 値があるため、これを行うための規定はありませんlong
。
これを行う方法はありますか?それとも捕まえるOverflowException
ことが唯一の希望?
これはあなたの質問に答えるはずです:
BigInt を使用しますが、C# で符号付きの型を符号なしの型に変換する方法に注意する必要があります。
// This has not been tested
unchecked
{
myUlong = myDataReader.GetInt64(...);
}
...
もう 1 つの可能性は、長さ 8 の VarBinary を使用してから、バイトを C# の ulong に変換することです。
私はそれが同じではないことを知っていますが、これはどうなりますか:
select convert(decimal(38, 0), 12345678901234567890123456789012345678)
unsigned long の最大値は 18,446,744,073,709,551,615 のようです。これは、この 10 進数が格納できる値よりも大幅に小さい値です。変換時に問題が発生する可能性がありますが、アプリケーション内のいくつかのラッパー関数を使用すると、かなり迅速に並べ替えることができると確信しています。