Відповіді:
Це відповідає довгому (або Int64 ), 64-бітовому цілому.
Хоча якщо число з бази даних буде досить малим, і ви випадково використовуєте Int32 тощо, ви будете в порядку. Але Int64 , безумовно, утримає його.
І помилка, яку ви отримуєте, якщо використовуєте щось менше і потрібен повний розмір? Переповнення стека! Так!
long
не пишеться з великої літери.
У мене просто був сценарій, який повертав первинний ключ вставки та використовував
SELECT @@identity
на моєму первинному ключі bigint, і я отримую помилку вкидання, використовуючи long - саме тому я і почав цей пошук. Правильна відповідь, принаймні в моєму випадку, полягає в тому, що тип, який повертається цим вибором, є NUMERIC, що прирівнюється до десяткового типу. Використання довгих призведе до виключення в ролях.
Це одна з причин перевірити свої відповіді в декількох пошукових системах Google (або навіть у переповненні стека!).
Процитуйте адміністратора бази даних, який мені допоміг:
... BigInt не такий, як INT64, незалежно від того, наскільки вони схожі. Частина причини полягає в тому, що SQL часто перетворює Int / BigInt в Numeric як частину звичайної обробки. Таким чином, коли мова йде про OLE або .NET, потрібне перетворення має значення NUMERIC to INT.
Ми часто не помічаємо, оскільки надрукована вартість виглядає однаково ".
Використовуйте довгий тип даних.
Ви можете використовувати long
тип абоInt64
Я думаю, що еквівалент Int64
int в sql картах безпосередньо до int32 також відомий як примітивний тип, тобто int в C #, тоді як
bigint на Sql Server відображається безпосередньо в int64 також відомий як примітивний тип, тобто довгий у C #
Явне перетворення, якщо тут було визначено велике число до цілого числа
У більшості випадків він довгий (int64) у c #