【QT-2】Qt连接及操作MySql数据库

2023-11-05

基础环境:Mysql+Navicat

1、安装MySQL的驱动文件

将MySQL安装目录lib下libmysql.dll文件复制到Qt的安装路径D:\softWare\Qt\5.9.9\msvc2017_64\bin下即可。

 

 2、QT项目中配置mysql环境

lib文件在Qt的安装目录D:\softWare\Qt\5.9.9\msvc2017_64\lib下。

*.pro文件中添加sql

并在头文件内添加

#include <QSqlDatabase>
#include < QSqlError>
#include < QSqlQuery>

3、连接数据库测试代码

//连接数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("127.0.0.1");
db.setPort(3306);
db.setUserName("root");
db.setPassword("***");
db.setDatabaseName("myqt");//数据库名

bool ok = db.open();
if (ok) {
	QMessageBox::information(this, "infor", "link success");
}
else {
	QMessageBox::information(this, "infor", "link failed");
	qDebug() << "error open database because" << db.lastError().text();
}

运行代码,如果连接成功,则输出以下结果:

 4、创建表

QSqlQuery sqlQuery;
sqlQuery.exec("create table test(id int(100) primary key auto_increment not null, Length varchar(255),Width varchar(255),Height varchar(255),ExternalVolume varchar(255),IntegralVolume varchar(255))");

5、插入变量

QString l = ui->lineEdit_ObjectLength->text().toUtf8();
QString w = ui->lineEdit_ObjectWidth->text().toUtf8();
QString h = ui->lineEdit_ObjectHeight->text().toUtf8();
QString ev = ui->lineEdit_ObjectExternalVolume->text().toUtf8();
QString iv = ui->lineEdit_ObjectIntegralVolume->text().toUtf8();

QSqlQuery sqlQuery;
QString sql = QString("insert into test(Length,Width,Height,ExternalVolume,IntegralVolume)"
			"VALUES ('%2', '%3', '%4', '%5', '%6')")
			.arg(l).arg(w).arg(h).arg(ev).arg(iv);
sqlQuery.exec(sql);

6、删除

QSqlQuery sqlQuery;
QString sql = QString("delete from test where Length = '410'");
sqlQuery.exec(sql);		

7、查询

QSqlQuery query;
// start_key_str、end_key_str为字符串类型 
QString sql = QString("select * from test where id > " + start_key_str + " and id <" + end_key_str);
query.exec(sql);
// 获取查询到的数据
while (query.next()) {
	QString data = query.value(0).toString();
}

 注意:

// 若数据库start_key字段定义为整型
// 1、先将获取到的start_key值转换为字符串
QString start_key_str = QString::number(start_key);
// 2、字符串拼接
QString sql = "select * from test where id < " + key_str;
 
// 若数据库start_key字段定义为字符串
// 直接将获取到的start_key值进行字符串拼接
QString sql0011 = "select * from test where Width < '" + key01+"'";

参考链接 QT操作mysql数据库_Happinessคิดถึง的博客-CSDN博客_qt操作mysql 

Qt 连接、操作数据库(增删改查)_公羽向阳的博客-CSDN博客_qt如何连接数据库进行增删改查

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

【QT-2】Qt连接及操作MySql数据库 的相关文章

  • 如何从 matlab 调用 Qtproject?

    我在 matlab 中有一个函数可以写入一个 file txt 我在 qt 项目中使用它 So 当我使用 unix 获取要运行的 qt 编译可执行文件时 我有一个 Matlab 文件 但出现错误 代码 unix home matt Desk
  • 为什么总是在 mouseDoubleClickEvent 之前调用 mousePressEvent

    请考虑以下代码 include
  • 常量类成员、赋值运算符和 QList

    请确认我是否正确并告诉我是否有更好的解决方案 我了解具有常量成员的对象 例如int const width 无法由编译器隐式创建的合成赋值运算符处理 但是 QList 我想 std list 也是如此 需要一个有效的赋值运算符 因此 当我想
  • 使用嵌入qt的mysql?

    我正在尝试使用嵌入 QT 的 mysql 我已经有一个与 mysqld 链接的 Qt mysql 插件 该插件可以很好地加载嵌入式数据库 但 QT 没有简单的方法来设置 dataDir 等嵌入式选项 我在这里看到 http doc qt i
  • 如何从 Qt 应用程序通过 ODBC 连接到 MySQL 数据库?

    我有一个新安装的 MySQL 服务器 它监听 localhost 3306 从 Qt 应用程序连接到它的正确方法是什么 原来我需要将MySQL添加到ODBC数据源 我在遵循这个视频教程后做到了这一点 https youtu be K3GZi
  • 包含 Qt 标头的正确方法是什么?

    到目前为止我知道几种方法 includeQt 类 include
  • QML改变图像颜色

    我搜索了如何对图像进行着色 格式为 svg 或 png 我尝试用一 个填充图像的矩形覆盖我的图像 但由于我的图像不是矩形 它会给整个矩形着色 而不仅仅是图像 可以用qml改变图像颜色吗 或者 是否可以使用 QPixmap 更改 qt 使用
  • QPainterPath::arcTo 上的角度如何解释?

    我正在开发图形编辑器的功能 在其中编辑弧线 当形状是椭圆形时 QPainterPath arcTo 的行为并不像我预期的那样 当它是一个圆圈时 它会按预期工作 下面的两张图片显示了结果 在第一种情况下 我创建了一个圆 然后将其转换为初始起始
  • PyQt 和 QSignalMapper/lambdas - 多个信号,单槽

    我在 PyQt 的菜单上有一个操作列表 每个操作对应我想要显示的每个不同的提要 所以我有一个 Y 将活动源设置为 Y Z 将其设置为 Z 等等 对于网络漫画阅读程序 我的菜单上都有 并且觉得自动化方法可能更好 而不是每次都打字 类似于将其添
  • 从 Qt 更改屏幕分辨率?

    我想更改屏幕分辨率 然后使用一个 ActiveX 控件 Flash 播放器 进入全屏 显然 仅适用于 Windows 的解决方案就可以了 有 Qt api 吗 还是我需要深入研究 winapi 如果是这样 我该在哪里查找 关键字 谢谢您的帮
  • 为什么anchors.centerIn不适用于Column元素?

    我有这段 QML 代码 Column spacing units gu 2 anchors fill parent centerIn parent Row spacing units gu 4 Row spacing units gu 4
  • 如何通过信号和槽传递参数?

    我的 GUI 包括LineEdit and a 按钮 当 的时候按钮单击后 插槽clicked 叫做 我想在之间建立信号槽关系clicked 作为信号和doSomething 作为插槽 问题是doSomething 无权访问 UI 并且do
  • 如何从键盘为 QTableWidget 创建信号?

    我有一张桌子 可以通过左 右 上 下按钮在里面移动 现在 当我停留在某个单元格并按空格键时 我需要创建一个信号 该信号还应该带来该单元格的坐标 我尝试使用 QTableWidget 的标准信号 但它不起作用 我该如何解决这个问题 创建一个单
  • 更改 Qt 中的语言环境

    我尝试使用 QLocale 和 setDefault 函数更改区域设置 但似乎不起作用 以下是使用 C 本地化库和 QLocale 更改语言环境的示例 对于 C 本地化库 它似乎可以工作 但对于 QLocale setDefault 函数调
  • 仅当从 Qt 连接时网页返回 HTTP 406 错误

    我有一个测试页面设置http mlecturedownload com test qt php http mlecturedownload com test qt php有以下代码
  • QtWebEngine Quicknano 在嵌入式 Linux 中没有声音

    我已将 QtWebEngine 编译到我的 i MX6 嵌入式设备中 当我尝试使用 Quicknanobrowser 播放 YouTube 视频时 视频会播放 但没有声音 事实上 当我尝试播放音频文件时没有声音hpr dogphilosop
  • 如何在Qt中更快地读取数据?

    Qt读取数据库比C 慢吗 我想我错过了一些东西 为了比较阅读速度 我在 Qt 中编写了以下内容 QElapsedTimer t t start int count 0 QString cs Driver SQL Server Server
  • PyQt:使用 alpha 通道创建 QPixmap,而不是预乘颜色通道

    我想创建一个 QPixmap 来使用 QPainter 进行绘制 QPixmap 应支持透明度 而不使用预乘颜色通道 目前 我通过创建具有所需尺寸的 QPixmap 并用每个通道 包括 alpha 设置为零的 QColor 填充它来实现此目
  • 在 Qt 中创建/写入新文件

    我正在尝试写入文件 如果该文件不存在 则创建它 我在互联网上搜索过 但没有任何效果 我的代码目前看起来像这样 QString filename Data txt QFile file filename if file open QIODev
  • 如何阻止 Qt Creator 将可执行文件放置在“调试”子目录中?

    我正在 Qt Creator 中构建一个项目 虽然我不关心中间 obj 文件去哪里 但重要的是最终的可执行文件应放入 并运行 许多依赖项 DLL 等所在的特定目录中 被发现 因此 在 Qt Creator 中 我选择 Shadow Buil

随机推荐

  • 46. C# -- 部分方法和部分类(partial)

    C 2 0 可以将类 结构或接口的定义拆分到两个或多个源文件中 在类声明前添加partial关键字即可 代码 CharTypesPrivate cs using System using System Collections Generic
  • TypeScript基本操作,配置文件tsconfig.json详解,vscode和HBuilderX基本配置

    Node 基本命令 npm安装依赖 npm install xxx 利用 npm 安装xxx依赖到当前命令行所在目录 npm install xxx g 利用npm安装全局依赖xxx npm install xxx save 安装并写入pa
  • iphone下拉菜单卡住了_苹果手机怎么下拉菜单 苹果x右上角下拉失灵怎么办

    苹果手机下拉菜单怎么设置 苹果手机下拉菜单的设置步骤如下 1 打开主屏上的设置应用 2 在设置列表中找到控制中心一栏 点击进入 3 接下来请关闭在控制中心列表下的二个选项 4 随后我们再重新打开这二个选项 然后再尝试下拉调出通知中心菜单就好
  • Qt中的信号和槽

    信号和槽的定义和使用 信号和槽的相关概念 用信号和槽 实现一个功能 1 定义teacher和student两个类 继承Qobject 2 teacher类发送信号hungry student类接受信号 用槽函数treat 响应 studen
  • warning: LF will be replaced by CRLF in

    解决LF 和 CRLF的问题 情景 今天在拉取代码的时候发现代码全都报红了 原因就是这个warning LF will be replaced by CRLF in 我用的是windows 同事用的是mac系统 其实是在换行的时候不同的系统
  • 工业物联网协议对比:MQTT Sparkplug vs OPC-UA

    引言 工业系统需要确保数据的无缝交换 因此对于高效 安全的通信协议具有极高的依赖性 MQTT Sparkplug 和 OPC UA 是两个经常被提到的工业协议 本文将全面比较 MQTT Sparkplug 和 OPC UA 以及它们的衍生版
  • 帆软-旋风图或飓风图

    https help fanruan com finereport doc view 1937 html source 1 1 概述 1 1 应用场景 图表可以自定义坐标轴的轴标签格式 例如旋风图的 X 轴的轴标签默认左侧为负值 可以将这些
  • 2020软件测试学科全套上课视频教程网盘免费分享

    软件测试学科全套上课视频教程网盘免费分享 合计50余天 以下是2020软件测试学习路线 为知名的培训机构视频 笔记源码分享给大家 里面可能会有瑕疵 望见谅 是小编自己在官网下载整理出来的 整理不易 分享给大家 请大家按照以下的学习线路学习
  • unity游戏开发日志(一)将mmd模型导入unity,并解决材质丢失的问题

    开发目标 从零开始开发一款音乐手游 类似钢琴块的玩法加QQ炫舞画面 实现一部想玩就可以随时玩的简单音游 该项目着重练手 以及技术交流 欢迎大家指导 开发计划 计划在两个月内完成游戏 该游戏完成后将进行fps游戏的开发 完成角色模型导入 ui
  • JDBC工具类——JDBCUtils类

    文章目录 一 JDBCUtils类设计 二 项目实例 1 用户表 2 项目结构 1 db properties 2 JDBCUtils java 3 JDBCUtilsTest java 一 JDBCUtils类设计 1 静态代码块 读取配
  • Win10下kafka简单安装及使用

    新手教程 老鸟忽略 使用具体参见http kafka apache org quickstart quickstart multibroker文档使用说明 如有问题欢迎交流 kafka依赖于zookeeper 官网下载的kafka内置了zo
  • navicat premium连接Oracle

    1 准备工作 instantclient 12 1 oracle官网可以下 配置环境变量 2个 2 配置环境变量 SQLPATH instantclient 11 2的安装地址 NLS LANG AMERICAN AMERICA UTF8
  • PHP输出1-20之间的奇数,用php输出一个数组中的偶数或奇数的方法

    函数介绍 array filter 函数用回调函数过滤数组中的元素 该函数把输入数组中的每个键值传给回调函数 如果回调函数返回 true 则把输入数组中的当前键值返回给结果数组 数组键名保持不变 在线学习视频推荐 php视频教程 代码示例如
  • 用欧拉公式推导三角函数所有公式包括 倍角公式-半角公式-和差化积-积化和差...

    主要思路 从欧拉公式推证得四条积化和差公式 得到了三角函数中加减乘除的转换基础 之后的证明就非常简单了 1我们首先从欧拉公式推出sinx和cosx 2再推出积化和差的四个基本公式 积化和差的具体推导只是一个非技巧性的推证 3有了积化和差 倍
  • UTC时间如何转换成北京时间—C语言代码

    解析原理 UTC 时区差 本地时间 时区差东为正 西为负 在此 把东八区时区差记为 0800 UTC 0800 本地 北京 时间 1 那么 UTC 本地时间 北京时间 0800 2 0942 0800 0142 即UTC是当天凌晨一点四十二
  • jmeter安装

    今天我们项目经理发我们jmeter安装包 说后期测试会用到 让我们安装一下 然后 我找了安装教程 发现有的说安装前需要配置环境 有的说不用配置 我刚开始配置了环境 但是发现最后打开jmeter窗口 最上面的菜单栏中的 选项 是灰色的不好用
  • 虚拟机安装mariadb后,无法连接数据库

    排查步骤如下 判断mariadb是否已安装 rpm q mariadb 如果未安装 使用 yum install y mariadb server x86 64 进行安装 判断防火墙是否关闭 systemctl status firewal
  • 设计模式-----单例模式

    一 单例模式简介 所谓类的单例设计模式 就是采取一定的方法保证在整个的软件系统中 对某个类只能存在一个对象实例 并且该类只提供一个取得其对象实例的方法 静态方法 比如 Hibernate 的 SessionFactory 它充当数据存储源的
  • 汽车尾气污染检测 尾气烟雾检测

    汽车尾气污染检测 尾气烟雾检测 排放黑烟的汽车 汽车尾气污染检测 尾气烟雾检测 有标注好训练数据集 python tensorflow自研框架
  • 【QT-2】Qt连接及操作MySql数据库

    基础环境 Mysql Navicat 1 安装MySQL的驱动文件 将MySQL安装目录lib下libmysql dll文件复制到Qt的安装路径D softWare Qt 5 9 9 msvc2017 64 bin下即可 2 QT项目中配置