- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在下面的代码中,我创建了一个表“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/
我的团队之前使用的是 Qt 4.3,正在尝试更新到最新版本 (4.7.2)。 之前我们使用的是 qsqlite 插件,但是这个功能已经被移到 Qt 的主要 QSql 组件中。 现在我们已经升级了,我们
我有一个 Qt4 程序,它只打开一个 Qt 数据库: QSqlDatabase db; db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabas
我正在尝试使用 PyQt 创建一个 GUI 应用程序,它将获取用户输入并存储在本地硬盘驱动器中。读完后,我意识到 python 有自己内置的 sqlite 模块,PyQt 也提供了 Qsqlite 模
在下面的代码中,我创建了一个表“one”,它是 QSQLITE 数据库的一部分,其属性如下面的代码所示。然后我将 QStrings a1、b1、c1、d1 插入到用户输入的表中。现在,仅当表中不存在
我有一个非常棘手的问题: 我在 Qt 中有这个 Qsqlite 连接,并且在主数据库中有一些 X 表。我使用 ATTACH 添加另一个数据库,该数据库恰好有一个同名的表 (X)。 So -> main
我正在使用 VS2008 和 QT 插件来制作我的应用程序。在我运行应用程序时打包后出现错误: QSqlDatabase: QSQLITE driver not loaded QSqlDatabase
我正在尝试将 Spatialite 作为扩展加载到 qSqlite(Qt 5.9)中,我之前用 Qt4.8 做过,但我在 QT5.9 上失败了。我通过删除“SQLITE_OMIT_LOAD_EXTEN
我已经创建了一个使用 Qt SQL 打开 SQLite 数据库的 Qt 动态库,但是我收到了这个错误: QSqlDatabase: QSQLITE driver not loaded QSqlData
我是新来的我想运行这段代码: QApplication a(argc, argv); QSqlDatabase::addDatabase("QMYSQL"); teste w; w.show(); r
我是一名优秀的程序员,十分优秀!