QT数据库操作学习笔记1

2023-11-07

一、SQL模型的类

模型/视图结构:进行数据和界面的分离。

模型/视图结构分为三部分:
1、模型((model) :与数据源通信,并为其他部件提供接口。与底层的数据打交道。

2、视图(view):从模型中获取用来引用数据条目的模型索引。与显示打交道。

3、代理(delegate):负责绘制数据条目。
当一个项目被编辑,委托与模型直接利用模型索引进行通信。各个部件之间使用信号和槽的方式进行通信。

二、qt核心:
1、信号与槽
2、事件——鼠标事件、键盘事件、重绘事件、定时器事件
3、对象树

三、qt界面:
1、样式表
2、布局管理器
3、资源文件

三、QSqlQuery、QSqlQueryModel、QSqITableModel的区别.

1、 QSqlQuery
可以用来执行SQL语句和获得执行结果的。

2、QSqlQueryModel
提供了一个sql查询结果的只读数据模型。它从查询QSqIlQueryModel获取数据。可以方便的用于在QListView, QTableView,QTreeView等各种view上展示数据。但它是只读的,不能编辑。
3、QsqITableMode
继承于QSqlQueryModel,与QSqlQueryModel功能相似。比QSqlQueryModel的限制在于不能是任意sql语句,只是对单个数据表操作。拓展在于在各种view上展示表格数据的同时,还允许用户进行编辑操作。

四、new一个对象

用法

 (1)、在头文件创建的类下进行声明,未定义,不占空间放于私有private:下。
 QSqlQueryModel *model;
 在源文件的构造函数中进行定义,分配空间。
 model=new QSqlQueryModel(this);
 (2)、直接定义和声明,如果在源文件的构造函数中,生命周期到析构函数执行。此时位于构造函数外的函数无法使用生成的对象。
 QSqlQueryModel *model=new QSqlQueryModel;

五、QSqlQueryModel类常用函数。

为SQL的结果集提供了一个只读的数据模型。
1、setQuery():设置查询语句。用法: model->setQuery("select * from student");

2、Query():设置查询语句.

3、Record():获取记录

(1)、单个记录的获取与输出


(2)、全部记录的获取与输出

            QSqlRecord record =model->record(1);//获得第一条记录
            qDebug()  <<"the second record is:"<<record<<Qt::endl;

4、 Rowcount():记录的行数。用法: int row =model->rowCount();

5、columnCount():记录的列数。用法:int column =model->columnCount();//获得列数
6、 lndex():指定记录的指定字段的索引工. 

7、Clear():清空结果集
.8、setHeaderData():设置表头

 model->setHeaderData(0,Qt::Horizontal,tr("id"));
 model->setHeaderData(1,Qt::Horizontal,tr("name"));

l六、QSqlTableModel函数

提供了一个可读写的数据模型用于操作表,例如修改,插入,删除,查询,和排序;
1、settable()//指定数据库表rowCount ()/返回行数. columnCount ()返回列数· removeColumns()lI删除列

 model_table->setTable("student"); //重新关联表  
  "student"相当于select * from student


2、submitAll (),I提交所有被修改的数据,然后修改的数据被保存在数据库中
3、revertAll ()/I撤销所有的修改   ps:修改提交和确认删除后无法在撤销
4、setFilter()l筛选,相当于SQL中的WHERE语句

5、排序  

(1)、升序
model_table->setSort(0,Qt::AscendingOrder);  
  model_table->select();
(2)、降序  
model_table->setSort(0,Qt::DescendingOrder);
 model_table->select();

使用的数据库SQL

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QT数据库操作学习笔记1 的相关文章

  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • 结构体的内存大小不同?

    为什么第一种情况不是12 测试环境 最新版本的 gcc 和 clang 64 位 Linux struct desc int parts int nr sizeof desc Output 16 struct desc int parts
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi

随机推荐

  • mysql-5.7.27 安装

    net start mysql 发生系统错误2 系统找不到指定的文件 转自 https www jianshu com p 6d8ed7c36e6f 以管理员身份运行 在命令行输入cd mySQL的bin目录的安装路径 C Windows
  • Java 运行时发生 NoClassDefFoundError: Could not initialize class 的解决方法

    在编译时没有异常的程序 在运行时抛出异常称 NoClassDefFoundError Could not initialize class 类名 根据 Java 官方文档 NoClassDefFoundError 是由于 JVM 或 Cla
  • 3分钟学会在 ASP.NET MVC 中创建、读取和编辑 Excel 电子表格

    在本文中 您将学习如何在ASP NET MVC 应用程序中创建 读取和编辑 Excel 电子表格 为此 我们将创建一个由功能丰富的网格控件组成的电子表格应用程序 用于显示和编辑 Excel 文件 如下所示 为了在 ASP NET MVC 中
  • Vision Transformer里的MLP Head里的Pre-Logits层

    Representation layer if representation size and not distilled self has logits True self num features representation size
  • 动态代理的俩种实现方式

    提到设计模式 我们不得不提下代理模式 这里给出其定义 给某一个对象提供一个代理 并由代理对象控制对原对象的引用 说白了就是我们不能直接操作被代理的对象 而只能通过操作代理对象而间接操作被代理的对象 这就好比水厂 送水代理点 用户三者的关系
  • JavaScript 将表达式的结果转换为布尔值

    运算符可用于将表达式的结果快速转换为布尔值 true或false const foo Hello console log foo const fox Not null console log fox const bar console lo
  • 数字电路设计之ARM m0进度(2)

    2014 10 22 1 已解决问题 跳转指令B0是两条指令代价 B1是一条指令代价 2 时序同步 要做到心中有流水线 对于每个信号的状态要同时改变 终于把求最大公约数和最小公倍数的程序顺序地仿真完 接下来就要加RAM和各种调时序了
  • 网页点击跳转到微信页面

  • 9_react生命周期函数

    1 16 3 声明周期函数图 2 react16 3 和 16 4 生命周期差异 在 16 3 中 只有当 props 改变时 会触发 getDerivedStateFromProps 方法 在 16 4 中 当 props state f
  • spring 事务传播级别

    spring事务传播级别 一 介绍 1 2 各种事务的解释 1 2 什么是嵌套事务 一 介绍 主要就是下面两张图 很重要 很重要 很重要 能够清晰的描述出 第一次事务 和 嵌套事务的 关系 记录一下 当前不存在事务 直接调用带有事务的方法
  • java 纯面向对象_为什么说Java语言是一门非常纯粹的面向对象编程语言?

    针对题主提的这个问题 我在此分享Naresh Joshi的一篇译文给你 希望对你理解这个问题有所帮助 在我刚开始学习 Java 的前面几年 我从书本里知道了 Java 是遵循 面向对象编程范式 Object Oriented Program
  • sybase常见语句

    文章目录 1 查看执行计划 2 用户管理 3 系统存储过程 4 页大小 5 设置数据库为单用户模式 6 清理过程缓存 7 更新统计值 8 重建索引 9 修改字段约束为null 10 修改字段长度 12 修改字段默认值 13 修改表名 14
  • 国内主要Android应用市场包名大全

    com tencent android qqdownloader 腾讯应用宝 com qihoo appstore 360手机助手 com baidu appsearch 百度手机助手 com xiaomi market 小米应用商店 co
  • 基于RISC-V的软件编译脚本

    脚本 设置RISC V工具链riscv set env RISC V setenv RISCV PATH mnt Software FreedomStudio SiFive riscv64 unknown elf gcc 8 1 0 201
  • swiper的使用,鼠标放上面停止变动

    swiper真的太好用了 根本停不下来 div class swiper container div class swiper wrapper flex div class swiper slide img class src home s
  • (一)seaborn教程——可视化统计关系

    简介 学习笔记为官网教程seaborn教程0 9 0 安装最新版本方法 pip install git https github com mwaskom seaborn git 导入包和设置背景 import numpy as np imp
  • 【蓝桥杯每日刷题】——分巧克力

    一 题目 儿童节那天有 K 位小朋友到小明家做客 小明拿出了珍藏的巧克力招待小朋友们 小明一共有 N 块巧克力 其中第 i 块是 Hi Wi 的方格组成的长方形 为了公平起见 小明需要从这 N 块巧克力中切出 K 块巧克力分给小朋友们 切出
  • Gitlab+P3C-PMD(Aliyun)标准化你团队的代码

    1 背景简介 项目越来越大 团队越来越大 代码越来越来多 然后就是各种五花八门的代码格式 代码规范 要做到代码规范我们可以采取代码交叉检视 IDEA Eclipse安装插件自检 以及代码管理服务端做校验 且不说各种方法的利弊 本文直接采用服
  • ctf中MD5绕过详细总结及例题[BJDCTF2020]Easy MD5

    一 首先是MD5 函数的作用 MD5 函数的作用是计算字符串的MD5散列 返回值 如果成功则返回已计算的 MD5 散列 如果失败则返回 FALSE 二 PHP 弱类型比较绕过 代码
  • QT数据库操作学习笔记1

    一 SQL模型的类 模型 视图结构 进行数据和界面的分离 模型 视图结构分为三部分 1 模型 model 与数据源通信 并为其他部件提供接口 与底层的数据打交道 2 视图 view 从模型中获取用来引用数据条目的模型索引 与显示打交道 3