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



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

808   8  

8 ответов:

, что соответствует долго (или тип int64), 64-разрядное целое число.

хотя, если число из базы данных оказывается достаточно маленьким, и вы случайно используете Int32 и т. д.- все будет хорошо. Но это тип int64 определенно будет держать его.

и ошибка, которую вы получаете, Если вы используете что-то меньшее и полный размер необходим? переполнение стека! Ура!

Int64 карты непосредственно к BigInt.

источник

У меня просто был скрипт, который вернул первичный ключ вставки и использовал

SELECT @@identity

на моем первичном ключе bigint, и я получаю ошибку приведения с помощью long - вот почему я начал этот поиск. Правильный ответ, по крайней мере в моем случае, заключается в том, что тип, возвращаемый этим выбором, является числовым, который приравнивается к десятичному типу. Используя длинный приведет к исключению броска.

Это одна из причин, чтобы проверить ваши ответы в более чем одном поиске Google (или даже на стеке Переполнение!).

чтобы процитировать администратора базы данных, который помог мне:

... BigInt-это не то же самое, что INT64, независимо от того, насколько они похожи. Часть причины заключается в том, что SQL часто преобразует Int/BigInt в Numeric как часть обычной обработки. Поэтому, когда он переходит к OLE или .NET, необходимое преобразование является числовым в INT.

Мы не часто замечаем, так как печатное значение выглядит одинаково."

используйте длинный тип данных.

можно использовать long тип или Int64

Я думаю, что эквивалент Int64

int в sql maps непосредственно к int32 также известен как примитивный тип т. е. int на C#, тогда как

bigint в sql maps непосредственно к int64 также известен как примитивный тип т. е. float на C#

явное преобразование, если biginteger в целое число было определено здесь

я обрабатывал тип данных bigint, который будет отображаться в DataGridView, и сделал это так

something = (int)(Int64)data_reader[0];

Comments

    Ничего не найдено.