当前位置: 首页 > news >正文

5、QT中SQLite数据库的操作

一、QT中的SQLite数据库

1、添加头文件和模块

Header:
#include <QSqlDatabase> 
qmake:
QT += sql//pro文件添加sql模块

执行数据库操作的类:

Header:
#include <QSqlQuery> 
qmake:
QT += sql

2、C语言中的SQLite增删减查

SQLite3的基础教程

3、SQLite的初始化

①、创建数据库的链接对象:

QSqlDatabase dataBase;

②、使用数据库驱动

dataBase = QSqlDatabase :: addDatabase("QSQLITE");//添加数据库的驱动

③、设置数据库的名称(创建一个数据库)

dataBase.setDatabaseName("QSQLITE");

④、创建一张表

QString table = "create table user_table(user QString, paswd QString)";
sqlQuery = QSqlQuery(dataBase);//指定这个操作将在哪个数据库上执行。
bool flag = sqlQuery.exec(table);//执行数据库的操作

例子:

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);dataBase = QSqlDatabase :: addDatabase("QSQLITE");//添加数据库的驱动dataBase.setHostName("数据库");dataBase.setDatabaseName("QSQLITE");dataBase.setUserName("123456");dataBase.setPassword("123456");//打开数据库if(dataBase.open()){qDebug() << "打开成功" << endl;}//创建一张表QString table = "create table user_table(user QString, paswd QString)";//执行数据库的操作sqlQuery = QSqlQuery(dataBase);//执行操作的数据库:QSQLITEbool flag = sqlQuery.exec(table);//执行数据库的操作if(flag==true){qDebug()<<"数据库表创建成功"<<endl;}
}

4、插入数据

 QString insert = QString("insert into user_table(user,paswd) values('%1','%2')").arg(user).arg(paswd);

例子:

void Widget::on_pushButton_clicked()
{QString user = ui->lineEdit->text();QString paswd = ui->lineEdit_2->text();QString find = QString("select * from user_table where user='%1'").arg(user);bool ret = sqlQuery.exec(find);if(ret){if(sqlQuery.next()){qDebug() << "账号已经存在" << endl;ui->lineEdit->clear();ui->lineEdit_2->clear();return;}}QString insert = QString("insert into user_table(user,paswd) values('%1','%2')").arg(user).arg(paswd);bool flag = sqlQuery.exec(insert);//执行数据库插入操作if(!flag){qDebug()<<"数据插入失败"<<endl;}ui->lineEdit->clear();ui->lineEdit_2->clear();
}

5、查找数据

①、遍历所有数据并保存

QString find = "select * from user_table";
bool flag = sqlQuery.exec(find);//把遍历的所有数据都保存在sqlQuery内

②、对比数据

while(sqlQuery.next())//遍历查询结果中的每一行记录。
{//从查询结果中获取每一行记录的第一列和第二列的值QString user = sqlQuery.value(0).toString();QString paswd = sqlQuery.value(1).toString();if(user == code && paswd == pwd){qDebug() << "登录成功" << endl;}qDebug() << "账号:" << user << endl;qDebug() << "密码:" << paswd << endl;
}

例子:

void Widget::on_pushButton_2_clicked()
{QString code = ui->lineEdit->text();QString pwd = ui->lineEdit_2->text();QString find = "select * from user_table";bool flag = sqlQuery.exec(find);if(flag==true){qDebug()<<"数据库查询成功"<<endl;}while(sqlQuery.next()){QString user = sqlQuery.value(0).toString();QString paswd = sqlQuery.value(1).toString();if(user == code && paswd == pwd){qDebug() << "登录成功" << endl;}qDebug() << "账号:" << user << endl;qDebug() << "密码:" << paswd << endl;}
}

6、注意

  • 查询数据的时候,必须要先把遍历的数据保存在sqlQuery类中。

相关文章:

5、QT中SQLite数据库的操作

一、QT中的SQLite数据库 1、添加头文件和模块 Header: #include <QSqlDatabase> qmake: QT sql//pro文件添加sql模块执行数据库操作的类&#xff1a; Header: #include <QSqlQuery> qmake: QT sql2、C语言中的SQLite增删减查 SQLite3的基础教程 3、SQLite的…...

git回退到某个提交

git是一个分布式版本控制软件&#xff0c;分布式版本库的做法使源代码的发布和交流都极为方便&#xff0c;因此有不少用户都在使用git。最近小编也正在学习git这款软件&#xff0c;发现要想熟练运用git&#xff0c;学会git中的一些命令是很重要的&#xff0c;如果我们要回滚到某…...

对可再生能源和微电网集成研究的新控制技术和保护算法进行基线和测试及静态、时域和频率分析研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

Full authentication is required to access this resource解决办法

我们在使用postman调接口时候&#xff0c;有的时候需要权限才可以访问&#xff0c;否则可能会报下面这个错误 {"success": false,"message": "Full authentication is required to access this resource","code": 401,"result&q…...

Jetty:使用上下文文件部署离线瓦片.md

说明 介绍利用jetty在任意位置如桌面的资源进行发布。比如下载的离线瓦片数据&#xff0c;如果放到jetty的webapps目录下&#xff0c;则启动时间会比较久&#xff0c;可以通过本文的步骤进行配置&#xff0c;也免去了拷贝过程的耗时。 关键字&#xff1a;自定义路径、Jetty、…...

Docker实战:docker compose 搭建Rocketmq

1、配置文件准备 1.1、 新建目录&#xff1a;/home/docker/data/rocketmq/conf mkdir /home/docker/data/rocketmq/conf1.2、 在上面目录下新建文件broker.conf文件&#xff0c;内容如下 brokerClusterName DefaultCluster brokerName broker-a brokerId 0 deleteWhen 0…...

STL常用容器 (C++核心基础教程之STL容器详解)String的API

在C的标准模板库&#xff08;STL&#xff09;中&#xff0c;有多种容器可供使用。以下是一些常见的容器类型&#xff1a; 序列容器&#xff08;Sequential Containers&#xff09;&#xff1a; std::vector&#xff1a;动态数组&#xff0c;支持快速随机访问。 std::list&…...

《人生苦短,我学Python》——条件判断->(if-elif-else)多向选择 条件嵌套

今天&#xff0c;我们来学习多向选择&#xff01;if--elif--else if 后的语句是当 if 判断条件成立时&#xff0c;执行的操作。elif 后的语句是当 if 判断不成立时&#xff0c;再判断一次&#xff0c;如果成立&#xff0c;执行的操作。else 后的语句是当以上所有判断条件都不成…...

MongoDB 数据库性能优化技巧

原文&#xff1a;MongoDB 数据库性能优化技巧 (techdatafuture.com) MongoDB 是一款灵活且可扩展的NoSQL数据库&#xff0c;为了提高其性能&#xff0c;我们可以采取一些优化技巧。本文将介绍一些MongoDB性能优化的关键点&#xff0c;包括索引的使用、查询优化、数据模型设计和…...

网络安全人才缺口超百万,如今的就业情况怎样?

网络安全人才缺口超百万&#xff0c;如今的就业情况怎样&#xff1f; 2022年9月7日&#xff0c;国家网络安全宣传周准时开始。本次网络安全宣传周和以前一样&#xff0c;主要目的都是为了普及网络安全知识&#xff0c;提高网络安全的防护技能&#xff0c;提升对电信网络诈骗的…...

「MySQL」MySQL面试题全解析:常见问题与高级技巧详解

MySQL面试题全解析&#xff1a;常见问题与高级技巧详解 1. 什么是数据库&#xff1f;2. 什么是MySQL&#xff1f;3. 什么是SQL&#xff1f;4. 什么是主键&#xff1f;5. 什么是外键&#xff1f;6. 请解释索引是什么以及为什么使用索引&#xff1f;7. 什么是事务&#xff1f;8. …...

【USRP】产品型号、参数、架构全解析系列 6:N320 / N321

一、USRP 简介 通用软件无线电外设( USRP ) 是由 Ettus Research 及其母公司National Instruments设计和销售的一系列软件定义无线电。USRP 产品系列由Matt Ettus领导的团队开发&#xff0c;被研究实验室、大学和业余爱好者广泛使用。 大多数 USRP 通过以太网线连接到主机&am…...

Apifox 常用 JS 脚本

前置脚本常用 1、时间戳生成&#xff08;秒级&#xff09;&#xff1a; // 1、生成秒级时间戳到全局变量中 //let timestamp parseInt(new Date().getTime() / 1000) //pm.globals.set(timestamp, timestamp) // 2、生成秒级时间戳到全局变量中 pm.globals.set(timestamp, p…...

防止SQL注入的四种方案

一、什么是SQL注入&#xff1f; SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严&#xff0c;攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句&#xff0c;在管理员不知情的情况下实现非法操作&#xff0c;以此来实现欺骗数据库服…...

java单元测试

版本区别 特性Junit 4Junit 5在当前类的所有测试方法之前执行。注解在静态方法上。此方法可以包含一些初始化代码。BeforeClassBeforeAll在当前类中的所有测试方法之后执行。注解在静态方法上。此方法可以包含一些清理代码。AfterClassAfterAll在每个测试方法之前执行。注解在…...

【LeetCode】双指针求解和为s的两个数字

Problem: 剑指 Offer 57. 和为s的两个数字 文章目录 题目解析算法思路分析复杂度Code 题目解析 首先来讲解一下本题的思路 我们看到本题的意思很简单&#xff0c;就是去这个nums这个数组中进行寻找&#xff0c;如果找到了两个数相加之和为target的话&#xff0c;那构成一个结果…...

opencv识别一张图片的多个红框,并截取红框的内容

需求 需要获取图片的红框的内容&#xff0c;实体的图片我就不放了 获取红框 先截取获得图片的多个轮廓 import cv2 import numpy as np # 加载图像并转换为灰度图像 image cv2.imread(image6.jpg) gray cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 应用高斯模糊以减…...

数据库-事务

介绍&#xff1a; 事务是一组操作的集合&#xff0c;它是一个不可分割的工作单位&#xff0c;事物会把所有的操作作为一个整体一起向系统 提交或撤销操作请求&#xff0c;即这些操作要么同时成功&#xff0c;要么同时失败 操作&#xff1a;事务控制 开启事务&#xff1a;start…...

MySQL 使用开源审计插件

文章目录 前言1. 审计插件下载2. 审计插件参数2.1 server_audit_events2.2 server_audit_excl_users2.3 server_audit_output_type2.4 server_audit_file_path2.5 server_audit_file_rotate_now2.6 server_audit_file_rotate_size2.7 server_audit_file_rotations2.8 server_au…...

Python入门教程 | Python3 集合(Set)

Python3 集合&#xff08;Set&#xff09; 集合&#xff08;set&#xff09;是一个无序的不重复元素序列。 集合中的元素不会重复&#xff0c;并且可以进行交集、并集、差集等常见的集合操作。 可以使用大括号 { } 创建集合&#xff0c;元素之间用逗号 , 分隔&#xff0c; 或…...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站&#xff0c;会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后&#xff0c;网站没有变化的情况。 不熟悉siteground主机的新手&#xff0c;遇到这个问题&#xff0c;就很抓狂&#xff0c;明明是哪都没操作错误&#x…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...