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

QT调用Sqlite数据库

QT设计UI界面,后台访问数据库,实现数据库数据的增删改查。

零售商店系统
数据库表:

分别是顾客表,订单详情表,订单表,商品表
表内字段详情如下:

 

 
在QT的Pro文件中添加sql,然后添加头文件
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>

在代码中使用两个函数,初始化数据库函数,和创建订单函数

初始化数据库代码如下:


void mySql::initDataBase()
{//打开数据库db = QSqlDatabase::addDatabase("QSQLITE");db.setDatabaseName("D://DB//server.db");//打开数据库if (db.open()){qDebug() << "Database opened successfully!";}else{qDebug() << "无法打开数据库:" << db.lastError().text();}
}

 添加订单代码函数如下
 

void mySql::addOrders(const QString& name,const QString& commodityName, int byQuality)
{if (!db.transaction()) {qDebug() << "Cannot start transaction:" << db.lastError();return;}QSqlQuery query;// 插入订单query.prepare("INSERT INTO Orders ('顾客ID', '订单日期', '总金额')\SELECT Customers.ID, CURRENT_DATE, 0\FROM Customers\WHERE Customers.姓名 = :name;");query.bindValue(":name",name);if (!query.exec()) {qDebug() << "Insert into Orders failed:" << query.lastError();db.rollback();return;}// 插入订单详表query.prepare("INSERT INTO OrderItems ('订单ID', '商品ID', '商品数量', '单价')\VALUES (\LAST_INSERT_ROWID( ),\( SELECT Products.ID FROM Products WHERE Products.商品名 = :commodity ),\10,\( SELECT Products.价格 FROM Products WHERE Products.商品名 = :commodity ));");query.bindValue(":commodity",commodityName);if (!query.exec()) {qDebug() << "Insert into OrderItems failed:" << query.lastError();db.rollback();return;}query.prepare("UPDATE orders\SET 总金额 = (\SELECT\sum( 单价 * 商品数量 )\FROM\orderitems\WHERE\orderitems.订单id = LAST_INSERT_ROWID() )\WHERE\orders.id = LAST_INSERT_ROWID();");if (!query.exec()) {qDebug() << "Update Order TotalAmount failed:" << query.lastError();db.rollback();return;}// 更新产品库存量query.prepare("UPDATE Products\SET 库存量 = 库存量 - :byQuantity\WHERE\Products.商品名 = :commodity;");query.bindValue(":byQuantity",byQuality);query.bindValue(":commodity",commodityName);if (!query.exec()) {qDebug() << "Update Product stock failed:" << query.lastError();db.rollback();return;}// 提交事务if (!db.commit()) {qDebug() << "Transaction commit failed:" << db.lastError();} else {qDebug() << "Purchase successful.";}
}

这里的SQL语句在🔗SQL语句练习-3-CSDN博客 可查阅。

相关文章:

QT调用Sqlite数据库

QT设计UI界面&#xff0c;后台访问数据库&#xff0c;实现数据库数据的增删改查。 零售商店系统 数据库表&#xff1a; 分别是顾客表&#xff0c;订单详情表&#xff0c;订单表&#xff0c;商品表 表内字段详情如下&#xff1a; 在QT的Pro文件中添加sql&#xff0c;然后添加头…...

前端

前端页面 Web页面 PC端程序页面 移动端APP页面 ... HTML页面 HTML超文本标记页面 超文本&#xff1a;文本&#xff0c;声音&#xff0c;图片&#xff0c;视频&#xff0c;表格&#xff0c;链接 标记&#xff1a;由许多标签组成 HTML页面运行到浏览器上面 vscode便捷插件使用 vs…...

【Git】—— 使用git操作远程仓库(gitee)

目录 一、远程仓库常用命令 1、从远程仓库克隆项目 2、查看关联的远程仓库 3、添加关联的远程仓库 4、移除关联的远程仓库 5、将本地仓库推送到远程仓库 6、从远程仓库拉取项目 二、分支命令 1、查询分支 2、创建分支 3、切换分支 4、推送到远程分支 5、合并分支 …...

Paddler负载均衡器

Paddler负载均衡器 Paddler本身是用Go语言编写的,没有直接的Python接口,但可以通过以下方式在Python中使用: 执行命令行调用 在Python中可以使用 subprocess 模块来调用Paddler的命令行工具,实现负载均衡功能 。例如: import subprocessdef start_paddler_agent():com…...

OSCP - Proving Grounds - Slort

主要知识点 文件包含 windows的reveseshell 具体步骤 执行nmap,依旧是很多端口开放&#xff0c;尝试了ftp,smb等均失败 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-13 12:00 UTC Nmap scan report for 192.168.53.53 Host is up (0.00095s latency). Not sho…...

YoloV9改进策略:Head改进|DynamicHead,利用注意力机制统一目标检测头部|即插即用

摘要 论文介绍 本文介绍了一种名为DynamicHead的模块,该模块旨在通过注意力机制统一目标检测头部,以提升目标检测的性能。论文详细阐述了DynamicHead的工作原理,并通过实验证明了其在COCO基准测试上的有效性和效率。 创新点 DynamicHead模块的创新之处在于它首次尝试在一…...

BFD综合详细实验配置案例

前言 本实验的目的是通过配置BGP&#xff08;边界网关协议&#xff09;、OSPF&#xff08;开放式最短路径优先协议&#xff09;、VRRP&#xff08;虚拟路由冗余协议&#xff09;以及BFD&#xff08;双向转发检测&#xff09;等网络协议&#xff0c;模拟企业级网络环境中的多协…...

自然语言处理与知识图谱的融合与应用

目录 前言1. 知识图谱与自然语言处理的关系1.1 知识图谱的定义与特点1.2 自然语言处理的核心任务1.3 二者的互补性 2. NLP在知识图谱构建中的应用2.1 信息抽取2.1.1 实体识别2.1.2 关系抽取2.1.3 属性抽取 2.2 知识融合2.3 知识推理 3. NLP与知识图谱融合的实际应用3.1 智能问答…...

c# RSA加解密工具,.netRSA加解密工具

软件介绍 名称: c# RSA加解密工具,.netRSA加解密工具依赖.net版本: .net 8.0工具类型: WinForm源码下载 c# RSA加解密工具,.netRSA加解密工具 依赖项 WinFormsRSA.csproj <Project...

Metricbeat安装教程——Linux——Metricbeat监控ES集群

Metricbeat安装教程——Linux 一、安装 下载安装包&#xff1a; 官网下载地址&#xff1a;https://www.elastic.co/cn/downloads/beats/metricbeat 上传包到linux 切换到安装目录下 解压&#xff1a;tar -zxvf metricbeat-7.17.1-linux-x86_64.tar.gz 重命名安装文件夹 mv met…...

一万多字拆解java中——“ 注解 ”的一切(三)(已完结)

前言&#xff1a; 咱们书接上回&#xff0c;上次按照框架讲了 第一篇&#xff0c;我们讲到了&#xff1a; ①注解的引入&#xff08;简单概述&#xff09;&#xff1a;在jdk5.0的时候 ②注解与注释的区别&#xff1a; 注释 是为了帮助人类阅读代码&#xff0c;不会对程序的执…...

记一次rac故障原因分析(虚拟化平台)

一 现象描述 XX客户于1月14号凌晨业务中断&#xff0c;检查数据库发现数据库集群宕机。 XX客户于2月14号春节初五早上业务异常&#xff0c;连接数据库无响应。 二 问题详细诊断 1月14号故障 1月14号凌晨2点&#xff0c;客户反馈业务中断&#xff0c;发现节点1无法连接&…...

Vue CLI 3 项目构建

Vue CLI 是一个功能强大、易于使用的工具&#xff0c;可以极大地简化 Vue.js 应用的开发过程。通过快速创建项目、灵活的插件系统和丰富的配置选项&#xff0c;开发者可以更专注于业务逻辑&#xff0c;而不是底层配置。无论是新手还是经验丰富的开发者&#xff0c;Vue CLI 都是…...

1114 Family Property (25)

This time, you are supposed to help us collect the data for family-owned property. Given each persons family members, and the estate&#xff08;房产&#xff09;info under his/her own name, we need to know the size of each family, and the average area and n…...

详细介绍Sd-WebUI提示词的语法规则

AI绘画中最大的门槛就是提示词&#xff0c;对英语水平、文学水平、想象力、灵感等要求较高。不能每次一输入正向提示词&#xff08;positive prompt&#xff09;&#xff0c;就只会写a girl, big eyes, red hair。虽然sd-webui软件可以直接翻译&#xff0c;输入一个子母后会立刻…...

document.body为null问题

调用document.body.append方法出现null的问题&#xff0c;一看就是放在了head中&#xff0c;一种方案是放在最后面&#xff0c;要不就和jquery一样监听&#xff0c;下面是代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8…...

2024国赛A问题5

问题五 龙头最大速度优化模型的建立 问题五在问题四的曲线的基础上对速度进行了约束&#xff0c;即在逐步改变龙头速度的情况下&#xff0c;各个龙身的速度也会依次改变&#xff0c;给出龙头的最大行进速度,使得舞龙队各把手的速度均不超过 2 m/s。即可依此构建一个龙头速度的…...

Kalilinux下MySQL的安装

MySQL是一个广泛使用的开源关系型数据库管理系统&#xff0c;它是最流行的关系型数据库之一。在Kalilinux下安装MySQL可以为我们提供方便的数据库管理和开发环境。本文将介绍如何在Kalilinux中安装MySQL&#xff0c;并提供一些常用的代码示例。 步骤一&#xff1a;更新软件包 …...

文件路径与Resource接口详解

目录 第一章、快速了解文件路径1.1&#xff09;什么是文件路径&#xff1f;1.1.1&#xff09;绝对路径1.1.2&#xff09;相对路径 1.2&#xff09;重要&#xff1a;相对路径的表示方法1.2.1) ./ 与 ../ 1.3&#xff09;文件路径与环境变量1.3.1&#xff09;什么是环境变量1.3.2…...

极狐GitLab 17.7正式发布,可从 GitLab 丝滑迁移至极狐GitLab【二】

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料&#xff1a; 极狐GitLab 官网极狐…...

5大核心功能打造高效媒体播放:免费开源解码工具LAV Filters全解析

5大核心功能打造高效媒体播放&#xff1a;免费开源解码工具LAV Filters全解析 【免费下载链接】LAVFilters LAV Filters - Open-Source DirectShow Media Splitter and Decoders 项目地址: https://gitcode.com/gh_mirrors/la/LAVFilters 在数字媒体播放领域&#xff0c…...

csp预习day2

set#include<bits/stdc.h> using namespace std;int main(){// ios::sync_with_stdio(0);// cin.tie(0);// cout.tie(0);int n,m; //值域、询问个数scanf("%d%d",&n,&m);int set[n1]; //大小为n的随机序列for (int i 1; i < n; i){scanf(&qu…...

Git-RSCLIP多模态检索实战:输入‘干旱期农田龟裂纹理’召回匹配影像

Git-RSCLIP多模态检索实战&#xff1a;输入干旱期农田龟裂纹理召回匹配影像 1. 引言&#xff1a;当遥感图像遇上智能检索 想象一下这样的场景&#xff1a;你手头有成千上万张遥感图像&#xff0c;需要快速找到那些显示"干旱期农田龟裂纹理"的图片。传统方法可能需要…...

50 岁苹果:变与不变的科技传奇

从车库小作坊到行业巨头&#xff1a;苹果早期的革命之路1976 年&#xff0c;在科技巨头普遍认为电脑仅供企业和政府使用时&#xff0c;乔布斯和沃兹尼亚克在车库用零件组装出 Apple I&#xff0c;虽像半成品却为苹果拿到启动资金。次年的 Apple II 才是关键&#xff0c;它是第一…...

Local Moondream2快速部署:VS Code Dev Container一键开发环境

Local Moondream2快速部署&#xff1a;VS Code Dev Container一键开发环境 1. 项目简介 Local Moondream2是一个基于Moondream2构建的超轻量级视觉对话Web界面。它能够让你的电脑拥有"眼睛"&#xff0c;可以对上传的图片进行详细描述、反推绘画提示词&#xff0c;或…...

CLAP Zero-Shot Audio Classification Dashboard与卷积神经网络的性能对比

CLAP Zero-Shot Audio Classification Dashboard与卷积神经网络的性能对比 音频分类技术正在经历一场革命性的变革。传统的卷积神经网络&#xff08;CNN&#xff09;方法需要大量标注数据进行训练&#xff0c;而新兴的零样本学习技术正在改变这一格局。今天我们将深入对比CLAP…...

Phi-4-mini-reasoning实操手册:Web界面响应延迟高?GPU显存占用诊断方法

Phi-4-mini-reasoning实操手册&#xff1a;Web界面响应延迟高&#xff1f;GPU显存占用诊断方法 1. 问题背景与现象分析 当使用Phi-4-mini-reasoning进行推理任务时&#xff0c;Web界面响应延迟高是一个常见问题。这种情况通常表现为&#xff1a; 点击"开始生成"按…...

SecGPT-14B模型压力测试:验证OpenClaw高并发安全任务的稳定性

SecGPT-14B模型压力测试&#xff1a;验证OpenClaw高并发安全任务的稳定性 1. 测试背景与目标 最近在探索如何将OpenClaw与安全大模型结合&#xff0c;构建一个自动化安全分析助手。SecGPT-14B作为一款专注于网络安全的大模型&#xff0c;理论上可以处理端口扫描、日志分析等任…...

如何统计不同电话号码的个数?—位图法

在技术领域&#xff0c;我们常常被那些闪耀的、可见的成果所吸引。今天&#xff0c;这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力&#xff0c;让我们得以一窥未来的轮廓。然而&#xff0c;作为在企业一线构建、部署和维护复杂系统的实践者&#xff0c;我们深知…...

OpenProject企业级项目管理平台部署架构与实践指南

OpenProject企业级项目管理平台部署架构与实践指南 【免费下载链接】openproject OpenProject is the leading open source project management software. 项目地址: https://gitcode.com/GitHub_Trending/op/openproject OpenProject作为领先的开源项目管理软件&#x…...