gpt4 book ai didi

sqlite - QSqlTableModel Submitall,但数据库未更新

转载 作者:行者123 更新时间:2023-12-03 19:19:17 25 4
gpt4 key购买 nike

我有一个QTableView和QSqlTableModel。当我更新QTableView中的单元格时,我正在调用“ submitall”函数来更新数据库。

“ Submitall”已激活,但数据库中没有更改,我也不知道为什么。

这是我的代码:

connect(ui->tableView->model(), SIGNAL(dataChanged(QModelIndex,QModelIndex,QVector<int>)), this, SLOT(slot_commitChanges()));

QSqlTableModel *biensEssentielsModele = new QSqlTableModel();
biensEssentielsModele->setTable("biensEssentiels");
biensEssentielsModele->setEditStrategy(QSqlTableModel::OnManualSubmit);
biensEssentielsModele->select();
biensEssentielsModele->removeColumn(0);


slot_commitChanges()函数:

if(biensEssentielsModele->submitAll())
qDebug() << "OK"; // This is the input I get
else
qDebug() << "NOK";


我也尝试使用事务,但结果相同。
该数据库是SQLITE。

任何帮助表示赞赏

谢谢 :)。

编辑:我忘了提到我的数据库是一个sqlite文件。

更新:我刚刚意识到,当我添加一行(带有一个调用插槽“ slot_addBiensEssentiels”的按钮)时,在数据库中更新了1个单元格中的更改。完成后,其他单元格不会更改

这是我的插槽“ slot_addBiensEssentiels”的代码:

biensEssentielsModele->insertRow(biensEssentielsModele->rowCount());

最佳答案

我发现了问题所在。
我不得不改变:

biensEssentielsModele->removeColumn(0);


至 :

ui->tableView->hideColumn(0);


由于缺少列和引用,在尝试更新数据库时,“ removeColumn()”引起了一些问题。

关于sqlite - QSqlTableModel Submitall,但数据库未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49875123/

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