- QSqlTableModel可以和QTableView共同使用,只需对QSqlTableModel类操作就可以实现读写数据库,
同时将数据显示在tableview中,相同的更改tableview中的值也可以直接同步到数据库中。 - QSqlTableModel类使用注意:
QSqlTableModel::setHeaderData,使用该方法设置的表头内容只是影响在QTableView中显示,不会影响对数据库的操作。
QSqlTableModel操作数据库是通过QSqlRecord来操作内容的。QSqlRecord的使用有如下注意点
QSqlRecord record();返回的是空的,但是包含表头名的QSqlRecord;
QSqlRecord record(int row);返回对应行的record,如果没有对应行则同上面不带参数的record;
QSqlRecord::isEmpty()是判断QSqlRecord是否包含表头名,不是判断数据的;
QSqlRecord::setGenerated();QSqlRecord的每个值都要使用该接口设置为true;不然会报"No Fields to update"
这里需要注意的是官方文档说这个值默认是true,要设置为false;实测新写入的每个值的这个参数都是flase,要设置成true才能写入到数据库。