踩坑QtSql之QSqlTableModel(一)

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

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

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

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 10,792评论 0 9
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,798评论 1 32
  • 亲爱的妹妹 我想告诉你 这不是喇叭花 也不是海棠花 这是鸡蛋花 你兴奋的笑了 原来这是鸡蛋花呀 一定可以吃吧
    大卉阅读 2,761评论 0 0
  • 我一看这造型,忍不住噗嗤笑了,说:“我擦,你他妈逃窜时还不忘胳膊下夹帽子,兜里揣副墨镜,一脱离危险先戴帽子,再架上...
    二郎神犬马阅读 4,542评论 0 0
  • 2018年7月22日星期日 洛阳多云高温 今天,在句子迷网站(www.juzimi.com)竟然发现这样一个提问:...
    遇知音阅读 3,800评论 1 2