1. 程式人生 > >Qt中SQL語句update同時更新多欄位及設定欄位值為空的方法

Qt中SQL語句update同時更新多欄位及設定欄位值為空的方法

Qt中往往需要對資料庫進行操作,常出現根據某變數更改相關欄位的內容。一般地,可以採用名稱繫結和位置繫結兩種方法。

本文以update舉例,其他insert等語句操作類似。

方法一:名稱繫結

  1. 已知:定義Qstring型別變數a b c d e f g h。

  2. QSqlQuery query5;

  3. query5.prepare(QString("UPDATE rfid_match SET CKH=:ckh,WLMS=:wlms,CCLX=:cclx,CW=:cw,PC=:pc,GC=:gc,JLDW=:jldw WHERE WZSFM='%1'").arg(a));

  4. query5.bindValue(":ckh",b);

  5. query5.bindValue(":wlms",c);

  6. query5.bindValue(":cclx",d);

  7. query5.bindValue(":cw",e);

  8. query5.bindValue(":pc",f);

  9. query5.bindValue(":gc",g);

  10. query5.bindValue(":jldw",h);

  11. query5.exec();

注意:第三行中的WHERE='%1'中不要忘記%1兩邊的單引號,因為表中欄位型別是varchar型。

方法二:位置繫結

  1. 已知:定義Qstring型別變數a b c d e f g h。

  2. QSqlQuery query5;

  3. query5.prepare(QString("update rfid_match set CKH=?,WLMS=?,"

  4. "CCLX=?,CW=?,PC=?,GC=?,JLDW=? WHERE WZSFM='%1'").arg(a));

  5. query5.addBindValue(b);

  6. query5.addBindValue(c);

  7. query5.addBindValue(d);

  8. query5.addBindValue(e);

  9. query5.addBindValue(f);

  10. query5.addBindValue(g);

  11. query5.addBindValue(h);

  12. query5.exec();

提示:

將資料庫中某欄位值設定為空用null,如下所示

query.exec(QString("update rfid_match set RFID2=null where WZSFM='%1'").arg(model->item(modelReIndex,4)->text()));