gpt4 book ai didi

c++ - 如果存在 QSQLITE 数据库,则根据 qt 中的行值插入或更新

转载 作者:太空宇宙 更新时间:2023-11-04 12:57:59 25 4
gpt4 key购买 nike

在下面的代码中,我创建了一个表“one”,它是 QSQLITE 数据库的一部分,其属性如下面的代码所示。然后我将 QStrings a1、b1、c1、d1 插入到用户输入的表中。现在,仅当表中不存在 b1 和 c1 时,软件才必须插入数据库。如果表中存在 b1 和 c1,则必须将 d1 列值更新为已存在的 d1 值和新的 d1 值之和。

[例如:考虑,

(row1) "A B C D"(row2) "水果苹果红10"(row3) "水果香蕉黄15"

作为插入数据库的行。现在,如果我必须插入另一行“fruit apple red 8”,它必须将表格第一行的 D 列更新为 10+8 =“18”。 我该怎么做?

@   
QSqlQuery query;
query.prepare("create table one (A varchar(20), B varchar(30),
C varchar(30), D integer(10))");
query.exec();

query.prepare("insert into one (A,B,C,D)"
"values(:a,:b,:c,:d)");
query.bindValue(":a",a1);
query.bindValue(":b",b1);
query.bindValue(":c",c1);
query.bindValue(":d",d1);
@

最佳答案

尝试更新现有行。如果这不起作用,则该行不存在,您必须插入它:

query.prepare("UPDATE one SET d1 = d1 + :d WHERE ...");
query.bindValue(...);
query.exec();
if (query.numRowsAffected() == 0) {
query.prepare("INSERT ...");
query.bindValue(...);
query.exec();
}

关于c++ - 如果存在 QSQLITE 数据库,则根据 qt 中的行值插入或更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45649479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com