Я хочу сохранить C#.NET ulong
в базу данных T-SQL. Я не вижу условий для того, чтобы сделать это как SQL bigint
имеет те же значения Минуты/Макса как нормальное long
.
Есть ли какой-либо способ, которым я могу сделать это? Или ловит OverflowException
моя единственная надежда?
Это должно ответить на ваш вопрос:
Вы бы использовали BigInt, вам просто нужно быть осторожным при преобразовании подписанного типа обратно в беззнаковый в C #
// This has not been tested
unchecked
{
myUlong = myDataReader.GetInt64(...);
}
...
Другая возможность - использовать VarBinary с длиной 8, а затем преобразовать байты в ulong в C #
Я знаю, что это не то же самое, но будет ли это:
select convert(decimal(38, 0), 12345678901234567890123456789012345678)
Максимальное значение для длинного числа без знака составляет 18 446 744 073 709 551 615, что значительно меньше, чем может хранить это десятичное число. Могут возникнуть проблемы с преобразованием, но я уверен, что пара функций-оберток в вашем приложении быстро их рассортирует.