在QT C++中更新数据库中的一组数据

Updating set of data in the database in QT C++

本文关键字:一组 数据 QT C++ 更新 数据库      更新时间:2023-10-16

我想更新我的小说表。我必须上课。

fictioninner.cpp

bool FictionInner :: updateMaterials(int fic_id,int copies, int shelf,int edition)
{
    QSqlQuery query ;
    query.prepare("update fiction set no_of_cpy =:copy,shelf_no=:shelf,edition=:edition"
                  " where fic_bk_id=:id");
    query.bindValue(":copy",copies);
    query.bindValue(":shelf",shelf);
    query.bindValue(":edition",edition);
    query.bindValue(":id",fic_id);
    return flag = query.exec();
}

fictionsection.cpp

void FictionSection::on_btnEdit_clicked()
{
    QString noOfCpy = ui->lneditMngCpy->text();
    int copy;
     if(!noOfCpy.isNull())
     {
          copy = noOfCpy.toInt();
     }
       int shelf = ui->spinbxMngShlf->value();
       int edition= ui->spinbxMngEdtn->value();
       QString ficId = ui->lneditMngFicId->text();
           int fictionId;
           if(!ficId.isNull())
           {
               fictionId = ficId.toInt();
           }
        FictionInner fiction;
  // assigning bool value to flag variable after running the query
        flag = fiction.updateMaterials(fictionId,copy,shelf,edition);
        if(flag == true)
     {
     QMessageBox :: information(this,"Successfull","Values updated successfully",QMessageBox::Ok);
     }
 else
 {
     QMessageBox :: critical(this,"Error","Couldn't update the values");
 }

}

表中未编辑数据。标志布尔值返回false。所有数据都以INT格式存储在数据库中。我想不通我的问题。提前感谢

在更新记录之前,您应该打开数据库,然后使用打开的数据库对象构造QSqlquery对象。