Что эквивалентно bigint в С#?

Что я должен использовать при обработке значения в С#, которое является bigint для базы данных SQL Server?

Ответ 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];