Это означает, что указанная переменная не указана ни на что. Я мог бы сгенерировать это так:
SqlConnection connection = null;
connection.Open();
Это вызовет ошибку, потому что, пока я объявил переменную «connection
», она не указала ни на что. Когда я пытаюсь вызвать член «Open
», для его устранения нет ссылки, и он будет вызывать ошибку.
Чтобы избежать этой ошибки:
object == null
. Инструмент Resharper JetBrains определит каждое место в вашем коде, которое имеет возможность ошибки нулевой ссылки, позволяя вам ввести нулевую проверку. Эта ошибка является источником ошибок номер один, IMHO.
В SQLite 3.x вам нужно сделать следующий запрос каждый раз при подключении к базе данных SQLite:
PRAGMA foreign_keys = ON;
В противном случае SQLite будет игнорировать все ограничения внешнего ключа.
Почему каждый раз? Обратная совместимость с SQLite 2.x в соответствии с документацией .
В SQLite 4.x ограничения FK будут установлены по умолчанию .
Поддержка внешних ключей SQLite
sqlite> PRAGMA foreign_keys = ON;
Это позволит ограничить внешние ключи.
Проверьте, есть ли в вашем SQLite ограничения внешнего ключа: http://sqlite.org/foreignkeys.html#fk_enable
Вы прочитали документацию? На главной странице говорится, что она представлена с версией 3.6.19. Ссылка показывает, как использовать внешние ключи (ваш код верен).
Предоставляет ли ваш код какие-либо сообщения об ошибках, которые вы пропустили? Вы проверяли все предварительные условия, указанные в документации?