【问题标题】:Qt Sqlite update returns falseQt Sqlite 更新返回 false
【发布时间】:2018-12-06 12:27:32
【问题描述】:

我有一个插入行的方法,它工作正常,但我的更新方法在“query.exec()”处返回 false。这是我的代码。提前谢谢

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;
    }
}

【问题讨论】:

  • 其中一个与另一个不同......这是FIRSTNAME:FIRSTNAME, 错字吗?

标签: c++ qt sqlite


【解决方案1】:

我发现了问题。我必须在 FIRSTNAME 的“:”之前添加一个“=”。

更新人员设置名字:名字

【讨论】:

    猜你喜欢
    • 2019-03-21
    • 1970-01-01
    • 2017-05-27
    • 2013-02-20
    • 2017-01-17
    • 1970-01-01
    • 2019-06-17
    • 1970-01-01
    • 2018-12-16
    相关资源
    最近更新 更多