У меня есть метод, который вставляет строку, и он работает нормально, но мой метод обновления возвращает 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;
}
}