踩坑QtSql之QSqlTableModel(一)

这篇文章有标题党的嫌疑。。。

这几天在做课设,因为需要量数据库表格中的数据,所以用到了QSqlTableModel。因为初次使用,所以碰到了一些问题。

Qt的离线文档中有格式示例,这里不多做赘述。在我启动程序后,发现TableView上面是空白的,没有数据,在确定我的表格存在,变量设置没有问题后,终于发现问题所在:数据库连接未开启。因为没有连接数据库,所以model内部执行的sql语句全部执行失败。再加上一行代码:

if(!db->isOpen())  db->open();

就可以了。因为我的QSqlDatabase对象是在主窗口创建的,所以我用了指针把它传递到各个子窗口,直接在不同窗口创建不同的对象也是可以的。

另外提一点在其他人的文章里提到的。很多人推荐使用QSqlTableModel代替QSqlQueryModel原因是后者默认不可编辑,而QSqlTableModel是可编辑的,如果在某些情况下需要禁用编辑的话,直接禁用tableview的编辑就行了,函数:setEditTriggers(QAbstractItemView::NoEditTriggers);

你可能感兴趣的:(踩坑QtSql之QSqlTableModel(一))