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

25 篇文章 1 订阅
订阅专栏

基础环境: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(int(100) primary key auto_increment not null, Length varchar(255),Width varchar(255),Height varchar(255),ExternalVolume varchar(255),IntegralVolume varchar(255))");

 其中identity(1,1)代表自增,第一个1代表从1开始计数,第二个1代表每次增长1。

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+"'";

8、更新

//silo_conf为表名,silo_dis为要修改的值,silo_id为查询的条件
update silo_conf set silo_dis = "m" where silo_id = '6'
QString sql_update = QString("update silo_conf set silo_dis='%1', silo_tem='%2'"
"where silo_name='%3' and silo_site_id=%4").arg(silo_dis).arg(silo_tem).arg(silo_name).arg(value_site_id);

注:若字段为整型,则为 silo_site_id=%4,若字段为字符串,则为silo_name='%4'。

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

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

QT连接Mysql数据库(详细成功版)
m0_67391521的博客
07-28 8037
QT连接Mysql数据库的步骤相对繁琐,但是也是一个不错的学习经历。希望可以帮到大家,欢迎大家指导评论。httpshttpshttpshttpshttpshttpshttpshttpshttpshttps。
QT数据库登录界面
01-26
使用QT实现数据库的管理的
QT连接Mysql数据库
刘鑫磊
07-27 1196
这个是QT自己没有的,需要单独下载。1.确保QTMysql驱动。3.编辑.cpp文件。
Qt连接mysql数据库
最新发布
qq_32663053的博客
04-17 375
qt连接mysql数据库,关于qt的安装,以及数据库驱动的生成及使用
QT连接数据库
fang20277的专栏
06-01 813
连接数据库需要的头文件:<br />#include <QSqlDatabase><br />#include <QSqlQuery><br /><br />1、连接微软的Access----------------------------------------------------------------------------------------------<br />QSqlDatabase ldb = QSqlDatabase::addDatabase("QODBC");<br />ldb.
QT连接MySQL数据库
qq_41603808的博客
08-03 6030
QT连接MySQL数据库,QSqlDatabase: QMYSQL driver not loaded
Qt链接Mysql数据库
m0_65744108的博客
04-22 739
3、选择MYSQL ODBC 8.0 ANSI Driver。3、在Qt项目中的main.cpp中加入如下测试代码。5、在Qt项目中的main.cpp中加入如下测试代码。1、在电脑搜索栏中输入ODBC,然后打开。1、在qt项目文件中加入sql。2、在用户DSN中,点击添加。4、最后配置ODBC。2、加入sql头文件。
QT连接阿里云服务器的MySql数据库示例
06-10
QT连接阿里云服务器的MySql数据库示例
Qt 多线程连接数据库——数据库连接
09-07
* 数据库连接池特点: * 获取连接时不需要了解连接的名字,连接池内部维护连接的名字 * 支持多线程,保证获取到的连接一定是没有被其他线程正在使用 * 按需创建连接,可以创建多个连接,可以控制连接的数量 * 连接...
QTmysql数据库操作
07-04
(2)在需要调用mysql操作类的窗口头文件*.h中声明mysql对象指针: public: mysql *db; (3)在需要调用mysql操作类的窗口源文件.cpp的构造函数中实例化mysql: db=new mysql(); db->connect("127.0.0.1","3306...
QtMySQL数据库界面登录操作
03-19
Qt中对MySQL数据库进行登录操作,非常详细,本人验证不错!!!
PyQt中使用QtSql连接MySql数据库的方法
09-08
主要介绍了PyQt中使用QtSql连接MySql数据库的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
QTmysql数据库
weixin_39926429的博客
06-12 2749
/其中,"setHostName"、"setDatabaseName"、"setUserName"和"setPassword"//其中,"exec"方法执行SQL查询,"next"方法将结果集中的指针移动到下一行,"value"方法获取指定列的值。//其中,"db" 是 "QSqlDatabase" 类型的对象,代表着连接MySQL数据库连接。//如果连接成功,"db.open()"将返回"true",否则返回"false"。//在使用完毕后,调用 "close()" 方法可以关闭连接,释放资源。
QT连接MYSQL数据库
zengfeichuan的专栏
12-23 595
QT连接MYSQL数据库的动态库需要自己编辑按照网上提供的各种方法试验了一天半之后,不得不最终放弃了,TMD实在太难了,出现各种各样的问题,崩溃了转向ODBC连接连接简单多了,在QT连接时,只需要DSN,不需要其他的东西如用户名,密码等等,这些在ODBC配置的时候都设置好了,点TEST提示success就行,代码如下所示:QSqlDatabase data_base = QSqlDatabas
qt连接mysql数据库
05-20
要在Qt连接MySQL数据库,需要安装MySQL驱动程序。以下是连接MySQL数据库的步骤: 1. 安装MySQL驱动程序 在Qt连接MySQL数据库,需要安装Qt提供的MySQL驱动程序。可以使用Qt Maintenance Tool来安装MySQL驱动程序。打开Qt Maintenance Tool,选择“添加或删除组件”,找到“Qt版本->Qt->Qt 5.x->Qt 5.x MySQL”,然后选择安装。 2. 引入MySQL头文件 在Qt代码中,需要引入MySQL头文件,包括<QSqlDatabase>、<QSqlQuery>和<QSqlError>。可以使用以下代码引入这些头文件: ```c++ #include <QSqlDatabase> #include <QSqlQuery> #include <QSqlError> ``` 3. 连接MySQL数据库 使用以下代码连接MySQL数据库: ```c++ QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); // 设置主机名 db.setPort(3306); // 设置端口号 db.setDatabaseName("database_name"); // 设置数据库名 db.setUserName("username"); // 设置用户名 db.setPassword("password"); // 设置密码 if (!db.open()) { qDebug() << "Failed to connect to database:" << db.lastError().text(); } ``` 其中,QSqlDatabase::addDatabase()函数设置MySQL数据库驱动程序,其参数为“QMYSQL”。然后,设置主机名、端口号、数据库名、用户名和密码,并调用QSqlDatabase的open()函数连接MySQL数据库。如果连接失败,可以使用db.lastError().text()来获得错误信息。 4. 执行SQL查询 连接MySQL数据库后,可以使用以下代码执行SQL查询: ```c++ QSqlQuery query; if (!query.exec("SELECT * FROM table_name")) { qDebug() << "Failed to execute query:" << query.lastError().text(); } while (query.next()) { // 处理结果集 } ``` 其中,QSqlQuery对象用于执行SQL查询,其exec()函数执行查询,next()函数用于遍历结果集。 以上就是Qt连接MySQL数据库的基本步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 【ArcGIS】去除影像黑边的几种方法 4581
  • 【Qt-4】QT基于qhttp-server搭建http服务器 4342
  • ubuntu18.04程序开机自启动 3294
  • 【Qt-24】基于QCharts绘制曲线图 3236
  • 【cesium-0】cesium加载倾斜摄影模型全流程 3152

分类专栏

  • nvidia nx环境配置 6篇
  • vue 6篇
  • python 1篇
  • Flask 1篇
  • GIS中心 18篇
  • Qt 25篇
  • PCL 13篇
  • 交通 1篇

最新评论

  • opencv图像处理

    ha_lydms: 这个博客是我每天不可或缺的一部分,因为我觉得自己从中学到了很多宝贵的经验和智慧。

  • 【Qt-24】基于QCharts绘制曲线图

    m0_64313727: 大佬请问怎么用这个方法画两条曲线呢?

  • 【Qt-17】Qt调用matlab生成的dll库

    房东不养猫: 博主 我调用后初始化报错 不知道是什么原因

  • opencv图像处理

    2401_83977605: 写的很详细,感谢博主的分享。【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  • 【Flask】Flask中HTTP请求与接收

    普通网友: 这篇文章是优质之作,内容充实,结构明晰,语言流畅且通俗易懂,适合广大读者阅读。【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 国产【Jetson Xavier NX】——从裸机到深度学习开发环境配置
  • 【vue-6】监听
  • 【vue-5】双向数据绑定v-model及修饰符
2024年17篇
2023年56篇
2022年39篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司天水SEO按天收费哪家好铜川SEO按天计费多少钱南通百度竞价包年推广价格连云港网络营销南平至尊标王价格资阳网站推广系统报价酒泉百姓网标王推广价格珠海如何制作网站多少钱漯河网站优化公司晋中网站推广方案铁岭网站优化推广价格吉林seo网站推广哪家好绍兴网站优化按天扣费价格岳阳网站优化哪家好绥化网站优化推荐绍兴网站建设昌吉网站改版推荐邢台seo优化公司锦州模板推广价格酒泉网站建设设计报价横岗百度网站优化公司飞来峡百度爱采购推荐普洱营销网站大丰网站制作设计公司木棉湾百度网站优化排名多少钱黄山网站优化排名多少钱黔西南网站建设设计哪家好文山SEO按天计费推荐惠州网站优化排名公司昭通网络推广哪家好歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化