Как упомянул другой ответчик, целое число SQLite хранится в 1, 2, 3, 4, 6 или 8 байтах. Однако вы не получите переполнения или исключений из диапазона.
В этом контексте (int)
- это приведение, а не преобразование. Если reader[]
не возвращает объект типа integer, если он возвращает другой числовой тип, вы получите исключение приведения независимо от значения, которое оно содержит.
Исходя из диапазона допустимых значений для целого числа SQLite, я предполагаю, что оно возвращает значение в виде 64-разрядного целого числа, long
. Чтобы проверить, попробуйте это:
object x = reader["myColumn"];
Debug.WriteLine(x.GetType().Name);