QSqlTableModel类继承至QSqlQueryModel类,该类提供了一个可读写单张SQL表的可编辑数据模型,功能:修改,插入,删除,查询,和排序

常用函数

QVariantheaderData

( intsection,Qt::Orientationorientation,

introle=

Qt::DisplayRole ) const 获取水平头或垂直头标题

bool setHeaderData (

intsection,Qt::Orientationorientation,

constQVariant&value,

introle=

Qt::EditRole ) 设置水平头或垂直头标题

int rowCount ( constQModelIndex&parent=

QModelIndex() ) const // 返回行数

int columnCount ( constQModelIndex&index=

QModelIndex() ) const // 返回列数

virtual bool removeColumns ( int column, int count, const

QModelIndex & parent = QModelIndex() )

//model->removeColumns (0)删除第一列

bool QSqlTableModel::submitAll (),//提交所有被修改的数据,然后修改的数据被保存在数据库中

void QSqlTableModel::revertAll () //撤销所有的修改,如果数据库已经被提交了修改,就不能通过撤销修改改回来了

virtual void revertRow ( int row ) //恢复指定行的改变

void QSqlTableModel::setFilter ( const QString &

filter ) //筛选,按照字符串filter对数据库进行筛选,相当于SQL中的WHERE语句

bool QSqlTableModel::select () //在筛选和排序的条件下,将数据库中符合要求的在mode表格中显示出来

void QSqlTableModel::setSort ( int column, Qt::SortOrder order )

//排序操作。按照列和Qt::SortOrder排序。Qt::SortOrder有升序和降序

bool insertRow ( int row, const QModelIndex &

parent = QModelIndex() ) //插入行

bool insertColumn (

intcolumn, constQModelIndex&parent=

QModelIndex() ) // 插入列

model->setEditStrategy(QSqlTableModel::OnManualSubmit); //设置保存策略为手动提交

一、在QTableView中显示数据库中表的数据

二、修改QTableView中数据后的提交,加入事务处理

三、查询操作

相当于SQL语句:SELECT * FROM 表名 WHERE name =

"name变量"

四、排序操作

五、插入操作

六、删除一条记录

首先要定位到待删除的行上

在QTableView中删除选中的一行

在QTableView中删除选中的多行

QAbstractItemView::SelectionModeselectionMode()const

// 原型

QModelIndexListQItemSelectionModel::selectedIndexes()const //原型

七、更新记录

必须先定位记录

可以看到这个模型很强大,而且完全脱离了SQL语句,就算你不怎么懂数据库,也可以利用它进行大部分常用的操作。这个模型提供了缓冲区,可以将所有修改先保存到model中,只有当我们执行提交修改后,才会真正写入数据库。当然这也是因为我们在最开始设置了它的保存策略:

model->setEditStrategy(QSqlTableModel::OnManualSubmit);

OnManualSubmit表明我们要提交修改才能使其生效。可以先将修改保存起来,当我们执行提交函数时,再去真正地修改数据库。当然,这个模型比前面的模型更高级,前面讲的所有操作,在这里都能执行。

qtableview 查询_【转】QTableView显示数据库相关推荐

  1. mysql水果表查询_最全MySQL数据库表的查询操作

    序言 本节比较重要,对数据表数据进行查询操作,其中可能大家不熟悉的就对于INNER JOIN(内连接).LEFT JOIN(左连接).RIGHT JOIN(右连接)等一些复杂查询. 通过本节的学习,可 ...

  2. mysql不同服务器数据库查询_不同服务器不同数据库两张表连接查询使用经验

    使用SQL语句连接查询位于两个不同的服务器不同的数据库中的两张表,最初将SQL语句写成以下形式select*fromProduct pinnerjoin opendatasource('SQLOLED ...

  3. java 一个大事务下的新增、修改、查询_重新学习Mysql数据库8:MySQL的事务隔离级别实战...

    本文转自:https://blog.csdn.net/sinat_27143551/article/details/80876127 本系列文章将整理到我在GitHub上的<Java面试指南&g ...

  4. python进行数据查询_如何进行python数据库查询?(实例解析)

    在这篇文章之中我们来了解一下关于python数据库的相关知识,有些朋友可能是刚刚接触到python这一编程语言,对这一方面不是特别的了解,在接下来这篇文章将会来带大家来了解关于python查询数据库中 ...

  5. 外键查询_详解MySQL数据库删除所有表的外键约束、禁用外键约束相关脚本

    概述 数据库的外键虽然能保证数据数据一致性和完整性,但是也一定程度地影响了数据更新的性能.在开发中,我们使用PowerDesigner建立物理数据模型时,为了结构的清晰,增加可读性,会创建表与表之间的 ...

  6. mysql 家谱树查询_中国家谱族谱数据库可以登录、查询了

    原标题:中国家谱族谱数据库可以登录.查询了 中青在线武汉6月6日电(党波涛 中国青年报·中青在线记者 雷宇)数据量全球第一,最早可追溯到明朝万历年间.华中师范大学中国农村研究院今天对外发布,由该院建设 ...

  7. mysql分片库分页查询_准备开发一个数据库分片的中间件,请问下分页查询用什么样的算法效率较高?...

    假设你说的用户,不是开发人员,是终端用户,比如saas之类的系统用户. 如果对于用户是透明的,意味着每个用户只需要看到自己的数据,那么比较经济的处理方式是,把用户id的哈希值作为分配的条件,这样能够保 ...

  8. mysql和timescale联合查询_[技术干货] 时序数据库timescaleDB安装

    本环境在Centos7.5采用编译安装的方式,主要介绍PostgreSQL 11.7,TimescaleDB 1.6.1,cmake3.8.2 PostgreSQL编译安装需要cmake3.4以上的版 ...

  9. mysql操作日志记录查询_详解mysql数据库参数log_timestamps--控制日志记录使用的时区...

    概述 最近发现之前安装的MySQL 5.7.27,其中的error log.general log日志里面日志时间的时区不对. 思路: mysql 5.7.2新增了参数 log_timestamps, ...

  10. 开发一个可以查询并显示数据库内容的微信小程序

    使用微信开发者工具可以创建云数据库,并通过代码可以查询并在客户端显示数据库的内容. 附:小程序一个功能页面有wxml(客户端呈现),js(功能函数),json,wxss(个性化处理),这些是局部的文件 ...

最新文章

  1. BootStrap 智能表单系列 五 表单依赖插件处理
  2. Wince程序内存和存储内存
  3. mysql排序由低到高_MySQL入门系列(四)—— 排序查询
  4. 文本分类有哪些论文中很少提及却对性能有重要影响的tricks?
  5. python开学吧真假,开学第一课,课课有总结
  6. 01迷宫(洛谷-P1141)
  7. 学规划或GIS需要安装的软件
  8. 软件概要设计文档(终)
  9. d3 v5 api arrays
  10. Windows2003四大必知版本
  11. [Ext JS6]视图模型和数据绑定
  12. 使用遗传算法解决N皇后问题
  13. [Ubuntu] change mouse scrolling between standard and natural
  14. PHP RSA2 签名算法
  15. c语言 滑窗法_滑窗算法
  16. powerDesigner修改mysql建表语句
  17. docker镜像下载到本地,并导入其他服务器
  18. R语言绘图—主题选择
  19. 查词根词缀特别好的网站
  20. 【电器识别】基于AlexNet网络实现电线杆、绝缘子、发电机和电容器等电器设备识别附matlab代码

热门文章

  1. 吉大计算机学院奖学金的分配,奖励资助_吉林大学奖学金设置_高考院校库
  2. Springboot网络微小说的设计与实现毕业设计源码031758
  3. ”易书网“开发总结——技术篇
  4. 大班科学电子计算机,计算器教案
  5. XJTU_选课小助手
  6. 用JS实现人物走动动画效果
  7. phpQuery的用法
  8. cef注入js_CefSharp JavaScript注入
  9. ue4 unreal 使用 Download Image 下载图片 下载多张图片 批量下载 类似untiy协程
  10. win7美化_桌面美化,无敌的dock软件,桌面便捷工具、桌面整理、更新鼠标美化...