@a63826ndrew
Студент, новичок в Python

Почему ошибка появилась и как ее исправить?

Здравствуйте!
Суть такова: обрабатывал нажатие на кнопку, после которого по изначальной задумке в таблицу базу данных должны были записываться имя и фамилия, но при проверке работоспособности вылезла ошибка:
System.Data.SQLite.SQLiteException: "constraint failed
NOT NULL constraint failed: users.Login"

И из этой ошибки возникли вопросы:
1. Почему вообще ошибка возликла в users.Login, если он никаким образом не был задействован?
2. Как это можно исправить?
3. Как можно доработать sql - запрос, чтобы при нажатии кнопки имя и фамилия записались к тому пользователю, чей логин использовался, к примеру, для входа в приложение?
Вот код подключения
SQLiteConnection connect = new SQLiteConnection("Data source = accounts.db");
            connect.Open();
            try
            {
                SQLiteCommand command = new SQLiteCommand($"INSERT INTO users (Name, Surname) VALUES ('{NameField.Text}','{SurnameField.Text}')", connect);
                command.ExecuteNonQuery();
            }
            catch(SQLiteException ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                MessageBox.Show($"Изменения сохранены!");
                connect.Close();

и таблица БД:
5ff5df4b082e8321696354.png
  • Вопрос задан
  • 232 просмотра
Решения вопроса 1
BasiC2k
@BasiC2k
.NET developer (open to job offers)
Судя по всему, в Вашей БД поле "users.Login" не может быть Null.
Т.к. Вы вставляете новую запись в эту таблицу, то Вам нужно явно указать, чему равно это поле при INSERT.
Либо в настройках БД - выставить дефолтное значение для этого поля.

Возможен ещё вариант возникновения проблемы - если поле users.Login имеет связь с другой таблицей.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы