Что я должен использовать при обработке значения в С#, которое является bigint для базы данных SQL Server?
Что эквивалентно bigint в С#?
Ответ 1
Это соответствует длинному (или Int64), 64-битовому целому.
Хотя, если число из базы данных окажется достаточно маленьким, и вы случайно используете Int32 и т.д., все будет в порядке. Но Int64 определенно сохранит его.
И ошибка, которую вы получаете, если используете что-то меньшее и нужен полный размер? Переполнение стека! Yay!
Ответ 2
Int64
отображается непосредственно на BigInt
.
Ответ 3
У меня просто был script, который вернул первичный ключ вставки и использовал
SELECT @@identity
на моем главном ключе bigint, и я получаю ошибку при использовании с использованием long - вот почему я начал этот поиск. Правильный ответ, по крайней мере, в моем случае состоит в том, что тип, возвращаемый этим выбором, - NUMERIC, который равен десятичному типу. Использование long приведет к исключению литья.
Это одна из причин проверки ваших ответов в более чем одном поиске Google (или даже при переполнении стека!).
Процитировать администратора базы данных, который помог мне:
... BigInt - это не то же самое, что INT64, независимо от того, насколько они похожи. Отчасти причина в том, что SQL будет часто преобразовывать Int/BigInt в числовой как часть обычной обработки. Поэтому, когда он переходит к OLE или .NET, требуемое преобразование имеет значение NUMERIC для INT.
Мы не часто замечаем, так как печатное значение выглядит одинаково ".
Ответ 4
Используйте длинный тип данных.
Ответ 5
Вы можете использовать тип long
или Int64
Ответ 6
Я думаю, что эквивалент Int64
Ответ 7
int в sql отображается непосредственно на int32, также известный как примитивный тип, то есть int в С#, тогда как
bigint в Sql Server отображается непосредственно на int64, также известный как примитивный тип, то есть long в С#
Явное преобразование, если biginteger в целое число было определено здесь
Ответ 8
Я обрабатывал тип данных bigint, который должен отображаться в DataGridView, и делал это как
something = (int)(Int64)data_reader[0];