QSqlTableModel提交所有但数据库未更新
QSqlTableModel submitall but database is not updated
我有一个 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()" 在尝试更新数据库时导致了一些问题。
我有一个 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()" 在尝试更新数据库时导致了一些问题。