Обновление Qt Sqlite возвращает false - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть метод, который вставляет строку, и он работает нормально, но мой метод обновления возвращает false в «query.exec ()».здесь мои коды.спасибо заранее

bool DbManager::InsertPerson(QString name,QString surname,int age,QDate birthDate){

    if(openDB()){
        QSqlQuery query;
        query.prepare("INSERT INTO PERSON (FIRSTNAME, LASTNAME,AGE,BIRTHDATE) "
                      "VALUES (:FIRSTNAME, :LASTNAME, :AGE, :BIRTHDATE)");
        query.bindValue(":FIRSTNAME", name);
        query.bindValue(":LASTNAME", surname);
        query.bindValue(":AGE", age);
        query.bindValue(":BIRTHDATE",birthDate.toString("yyyy-MM-dd").append(" 00:00:00.000"));
        return query.exec();
    }else
    {
        return false;
    }
}

bool DbManager::UpdatePerson(int id, QString name,QString surname,int age,QDate birthDate){

    if(openDB()){
        QSqlQuery query;
        query.prepare("UPDATE PERSON SET FIRSTNAME:FIRSTNAME, LASTNAME=:LASTNAME,AGE=:AGE,BIRTHDATE=:BIRTHDATE WHERE ID=:ID");
        query.bindValue(":FIRSTNAME", name);//VARCHAR(20)
        query.bindValue(":LASTNAME", surname);//VARCHAR(30)
        query.bindValue(":AGE", age);//INTEGER
        query.bindValue(":BIRTHDATE",birthDate.toString("yyyy-MM-dd").append(" 00:00:00.000"));//TEXT:yyyy-MM-dd HH:MI:SS.SSS
        query.bindValue(":ID", id);//INTEGER

        return query.exec();
    }else
    {
        return false;
    }
}

1 Ответ

0 голосов
/ 06 декабря 2018

я нашел проблему.мне нужно добавить "=" перед ":" в FIRSTNAME.

ОБНОВЛЕНИЕ ЧЕЛОВЕКА УСТАНОВИТЬ FIRSTNAME: FIRSTNAME

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