Ошибка базы данных: QSqlError ("", "", "") и ошибка запроса: QSqlError ("", "Несоответствие количества параметров", "") - PullRequest
0 голосов
/ 06 января 2020

Как решить эту проблему Ошибка базы данных:

QSqlError("", "", "") and Query Error:  QSqlError("", "Parameter count mismatch", "")

Я получаю эту ошибку каждый раз, когда хочу что-то сохранить. Я действительно хочу понять эту проблему, зачем выдавать эту ошибку?

соединение с базой данных:

db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("SMS_ERD.db");
    db.setDatabaseName(":memory:");

    if(!db.isOpen()){
        db.open();
        qDebug() << "Database connected.";
    } else{
        qDebug() << db.lastError().text();
    }

    query = new QSqlQuery(db);

оператор сохранения:

QString tid = ui->txt_teacher_id->text();
    QString school_id = ui->txt_school_id->text();
    QString f_name = ui->txt_f_name->text();
    QString m_name = ui->txt_m_name->text();
    QString l_name = ui->txt_l_name->text();
    QString gender = ui->comboBox->currentText();
    QString other_detail = ui->txt_other->toPlainText();

    const QString save_statement = "insert into teachers(TEACHER_ID, SCHOOL_ID)"
                                   "values (:tid, :school_id)";

    db->getQuery()->prepare(save_statement);

    db->getQuery()->bindValue(":tid", tid);
    db->getQuery()->bindValue(":school_id", school_id);

    if(db->getQuery()->exec()){
        qDebug() << "Data saved.";
    }else{
        qDebug() << db->getQuery()->exec();
        qDebug() << "Database Error: " << db->getDB().lastError();
        qDebug() << "Query Error: " << db->getQuery()->lastError();
    }

пожалуйста, объясните ошибку. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...