我更改了表格中单元格的值:
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("sqlite.db");
db.open();
QSqlTableModel *model = new QSqlTableModel(0, db);
model->setTable("Expenses");
model->select();
model->setData(model->index(0,2), 100);
现在如何将更改保存在数据库(sqlite.db)中?
最佳答案
正如Qt docs所说,保存更改取决于模型的编辑策略设置。根据编辑策略的不同,该值可能会立即应用于数据库或缓存在模型中。
您应该引用模型的QSqlTableModel::setEditStrategy()
函数,并设置与您的需求相对应的函数。例如,如果将编辑策略设置为QSqlTableModel::OnFieldChange
,则所有更改将在setData()
函数调用后立即应用。
否则,您只需要调用QSqlTableModel::submitAll()
即可将所有未决的更改提交到数据库。