在使用TableView的时候将数据库中的数据用TableView显示的时候要注意一个坑!!
不要用 QSqlQueryModel ,这样会导致TableView不可以修改!
最好使用 QSqlTableModel
默认情况下TableView可以修改,如果不想被修改再设置成不可以修改
ui->TableViewName->setEditTriggers(QAbstractItemView::NoEditTriggers);
需要修改的时候使用:
ui->TableViewName->setEditTriggers(QAbstractItemView:AllEditTriggers);
由于我在写的时候踩了这个坑,所以在此记录一下希望能帮到你!
Qt中数据库的事务Transaction
事务是数据库的一个重要功能,所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。
在Qt中用transaction()开始一个事务操作,用commit()函数或rollback()函数进行结束。commit()表示提交,即提交事务的所有操作。具体地说就是将事务中所有对数据库的更新写回到数据库,事务正常结束。rollback()表示回滚,即在事务运行的过程中发生了某种故障,事务不能继续进行,系统将事务中对数据库的所有已完成的操作全部撤销,回滚到事务开始时的状态。
再修改数据时可以使用,如果所有需要的修改完成后,提交然后数据库自动判断是否发生错误,如果没有发生错误就执行并写入数据库中;如果发生错误就会回滚到没有进行数据修改之前的状态。
网友评论