Как исправить ошибку 'Parameter count mismatch' при закрытии приложения в Qt с использованием базы данных SQLite?
У меня есть приложение на Qt, которое использует базу данных SQLite для хранения данных. Я хочу, чтобы данные автоматически сохранялись в базе данных при закрытии приложения. Я пытаюсь реализовать это с помощью переопределения метода closeEvent в классе MainWindow, чтобы выполнить запрос SQL для вставки данных в базу данных при закрытии окна. Однако при выполнении запроса возникает ошибка "Parameter count mismatch". Мои попытки заключаются в следующем:
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("DBase.db");
// Проверка успешности подключения
if (!db.open()) {
qDebug() << "Ошибка открытия базы данных:" << db.lastError().text();
} else {
qDebug() << "База данных открыта успешно!";
}
ui->boxGrade->hide();
ui->inTask->hide();
}
void MainWindow::closeEvent(QCloseEvent *event)
{
// При закрытии окна сохраняем данные в базе данных
// Получаем текст задачи из поля ввода
QString taskText = ui->inTask->text();
// Создаем запрос SQL для вставки данных в базу данных
QSqlQuery query;
query.prepare("INSERT INTO TaskList (TASK) VALUES (:taskText)");
query.bindValue(":taskText", taskText);
// Выполняем запрос
if(query.exec()) {
qDebug() << "Данные успешно добавлены в базу данных!";
} else {
qDebug() << "Ошибка при добавлении данных в базу данных:" << query.lastError().text();
}
QMainWindow::closeEvent(event);
}
Как я могу исправить эту ошибку и реализовать автоматическое сохранение данных при закрытии приложения? Рассписал как мог что бы понятнее было