我正在 QStandardItemModel
中显示来自 Sqlite 数据库的数据在 tableView 中,以便用户可以对其进行编辑。一旦用户按下“保存”或尝试以未保存的更改退出(在这种情况下给出提示),我现在想将这些更改保存回我的数据库。
最好的方法是什么?我正在考虑运行更新查询。但是有没有一种方法可以让我只对用户修改过的行运行查询?
最佳答案
您可以使用QSqlTableModel
在QTableView
中显示表格内容:
QSqlTableModel * model = new QSqlTableModel(this,db);
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->setTable( "someTable" );
model->select();
ui->tableView->setModel( model );
要保存或取消更改,您可以开始事务并在最后提交或回滚。开始交易就像:
model->database().transaction();
保存按钮的代码:
if(model->submitAll())
model->database().commit();
else
model->database().rollback();
取消按钮的代码:
model->revertAll();
model->database().rollback();
关于c++ - tableView数据更改后将数据保存到数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24142663/