Expiry Date TEXT NOT NULL
часть вашего PaymentInfo
оператора создания таблицы
c.execute('CREATE TABLE IF NOT EXISTS PaymentInfo (FirstName TEXT, LastName TEXT, CardNumber TEXT NOT NULL, NameCard TEXT NOT NULL, Expiry Date TEXT NOT NULL, CVC TEXT NOT NULL);')
неверна.
По запросу вставки
sql2 = "INSERT INTO 'PaymentInfo' (FirstName, LastName,CardNumber,NameCard,Expiry,CVC) VALUES (?,?,?,?,?,?)"
кажется имя столбца - Expiry
.
Итак, если имя столбца имеет значение «Срок действия» и тип данных Date
, то определение столбца должно выглядеть следующим образом: Expiry Date NOT NULL
И, возможно, вы захотите преобразовать self.n_ExpiryDate
в соответствующий объект Python, который совместим с форматом Sqlite3 Date
, перед выполнением запроса вставки.
Обновление в соответствии с правкой вопроса :
Если имя столбца «Дата истечения срока действия» и тип данных TEXT
, то определение столбца должно выглядеть следующим образом: "Expiry Date" TEXT NOT NULL
.