T-SQL может сохранить ulong's?

Я хочу сохранить C#.NET ulong в базу данных T-SQL. Я не вижу условий для того, чтобы сделать это как SQL bigint имеет те же значения Минуты/Макса как нормальное long.

Есть ли какой-либо способ, которым я могу сделать это? Или ловит OverflowException моя единственная надежда?

14
задан Robert Harvey 2 June 2010 в 15:51
поделиться

2 ответа

Это должно ответить на ваш вопрос:

http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataproviders/thread/ff08c190-a981-4896-9542-3f64b95a84a2/

Вы бы использовали BigInt, вам просто нужно быть осторожным при преобразовании подписанного типа обратно в беззнаковый в C #

// This has not been tested
unchecked
{
    myUlong = myDataReader.GetInt64(...);
}

...

Другая возможность - использовать VarBinary с длиной 8, а затем преобразовать байты в ulong в C #

9
ответ дан 1 December 2019 в 14:10
поделиться

Я знаю, что это не то же самое, но будет ли это:

select convert(decimal(38, 0), 12345678901234567890123456789012345678)

Максимальное значение для длинного числа без знака составляет 18 446 744 073 709 551 615, что значительно меньше, чем может хранить это десятичное число. Могут возникнуть проблемы с преобразованием, но я уверен, что пара функций-оберток в вашем приложении быстро их рассортирует.

6
ответ дан 1 December 2019 в 14:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: