Qt中SQL語句update同時更新多欄位及設定欄位值為空的方法
Qt中往往需要對資料庫進行操作,常出現根據某變數更改相關欄位的內容。一般地,可以採用名稱繫結和位置繫結兩種方法。
本文以update舉例,其他insert等語句操作類似。
方法一:名稱繫結
-
已知:定義Qstring型別變數a b c d e f g h。
-
QSqlQuery query5;
-
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));
-
query5.bindValue(":ckh",b);
-
query5.bindValue(":wlms",c);
-
query5.bindValue(":cclx",d);
-
query5.bindValue(":cw",e);
-
query5.bindValue(":pc",f);
-
query5.bindValue(":gc",g);
-
query5.bindValue(":jldw",h);
-
query5.exec();
注意:第三行中的WHERE='%1'中不要忘記%1兩邊的單引號,因為表中欄位型別是varchar型。
方法二:位置繫結
-
已知:定義Qstring型別變數a b c d e f g h。
-
QSqlQuery query5;
-
query5.prepare(QString("update rfid_match set CKH=?,WLMS=?,"
-
"CCLX=?,CW=?,PC=?,GC=?,JLDW=? WHERE WZSFM='%1'").arg(a));
-
query5.addBindValue(b);
-
query5.addBindValue(c);
-
query5.addBindValue(d);
-
query5.addBindValue(e);
-
query5.addBindValue(f);
-
query5.addBindValue(g);
-
query5.addBindValue(h);
-
query5.exec();
提示:
將資料庫中某欄位值設定為空用null,如下所示
query.exec(QString("update rfid_match set RFID2=null where WZSFM='%1'").arg(model->item(modelReIndex,4)->text()));