Что я должен использовать при обработке значения в C #, которое является bigint для базы данных SQL Server?
Что эквивалентно bigint в C #?
Ответы (11)
Это соответствует 64-битному целому числу long (или Int64).
Хотя, если число из базы данных окажется достаточно маленьким, и вы случайно используете Int32 и т. Д., Все будет в порядке. Но Int64 точно выдержит.
А какую ошибку вы получите, если используете что-то меньшее, а нужен полный размер? Переполнение стека! Ура!
long
не пишется с заглавной буквы.
- person Shawn Kovac; 16.03.2014
Int64
отображается непосредственно на BigInt
.
long
- это псевдоним для System.Int64
.
- person Anon.; 22.01.2010
У меня был только сценарий, который возвращал первичный ключ вставки и использовал
SELECT @@identity
на моем первичном ключе bigint, и я получаю ошибку приведения, используя long - вот почему я начал этот поиск. Правильный ответ, по крайней мере, в моем случае, заключается в том, что тип, возвращаемый этим выбором, - ЧИСЛО, что соответствует десятичному типу. Использование long вызовет исключение приведения.
Это одна из причин проверять свои ответы более чем в одном поиске Google (или даже в Stack Overflow!).
Процитирую администратора базы данных, который мне помог:
... BigInt - это не то же самое, что INT64, независимо от того, насколько они похожи. Частично причина в том, что SQL часто преобразует Int / BigInt в Numeric как часть нормальной обработки. Поэтому, когда он переходит в OLE или .NET, требуется преобразование NUMERIC в INT.
Мы не часто замечаем, так как напечатанное значение выглядит одинаково.
Вы можете использовать тип long
или Int64
Используйте длинный тип данных.
Я думаю, что эквивалент Int64
int в sql отображается непосредственно на int32, также известный как примитивный тип, т.е. int в C #, тогда как
bigint в Sql Server напрямую сопоставляется с int64, также известным как примитивный тип, т.е. long в C #
Явное преобразование, если большое целое число в целое было определено здесь
В большинстве случаев это long (int64) в С #
если вы используете bigint в таблице базы данных, вы можете использовать Long в C #
int (64) или long Datatype эквивалентно BigInt.
Я обрабатывал тип данных bigint, который должен отображаться в DataGridView, и сделал его следующим образом
something = (int)(Int64)data_reader[0];