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

【qt】windows下qt连接数据库

1.新建数据库

create database mydatabase;

在这里插入图片描述

2.新建表结构,并插入数据

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/d80754b5eeb24f59a9ba57583093972c.png

3.qt下连接数据库

1.连接数据库,需要加sql
在这里插入图片描述

2.添加QsqlDatabase头文件,使用提示句柄,头文件QMessageBox

在这里插入图片描述

3.连接数据库

在这里插入图片描述

4.界面设计

在这里插入图片描述

5.插入实现
在这里插入图片描述

注意这里如果是插入失败的话,说明你的qt中没有mysql对应的驱动,需要自己下载
mysql驱动链接
注意对应你自己的qt版本
下载好将驱动放到
在这里插入图片描述
在这里插入图片描述
6.查询
在这里插入图片描述

4.演示

qt连接数据库

5.代码

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include<QSqlDatabase>
#include<QMessageBox>
#include<QSqlQuery>
#include<qDebug>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private slots:void on_insertbutton_clicked();void on_findbutton_clicked();private:Ui::Widget *ui;
};
#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");//定义对象添加数据库db.setHostName("localhost");            //数据库所在的ip地址db.setDatabaseName("mydatabase");          //使用的数据库名称db.setUserName("root");                     //用户名db.setPassword("15529398397");             //用户密码db.setPort(3306);                          //数据库端口号if(db.open())                               //qt连接数据库成功{QMessageBox::information(this,"连接提示","连接成功");}else                                      //连接失败{QMessageBox::warning(this,"连接提示","连接失败");}}Widget::~Widget()
{delete ui;
}void Widget::on_insertbutton_clicked()
{QString id=ui->id->text();QString name=ui->name->text();QString birth=ui->birth->text();QString sql=QString("insert into student values (%1, '%2' ,'%3');").arg(id).arg(name).arg(birth);QSqlQuery query;if(query.exec(sql)){QMessageBox::information(this,"插入提示","插入成功");}else{QMessageBox::information(this,"插入提示","插入失败");}}void Widget::on_findbutton_clicked()
{QSqlQuery query;query.exec("select * from student");while(query.next()){qDebug()<<query.value(0);qDebug()<<query.value(1);qDebug()<<query.value(2);}}

6.使用tableview控件显示查询

1.界面设计
在这里插入图片描述
2.代码实现
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.演示

8.代码

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include<QSqlDatabase>
#include<QMessageBox>
#include<QSqlTableModel>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private slots:void on_selectbutton_clicked();private:Ui::Widget *ui;QSqlTableModel* m;};
#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");//定义对象添加数据库db.setHostName("localhost");            //数据库所在的ip地址db.setDatabaseName("mydatabase");          //使用的数据库名称db.setUserName("root");                     //用户名db.setPassword("15529398397");             //用户密码db.setPort(3306);                          //数据库端口号if(db.open())                               //qt连接数据库成功{QMessageBox::information(this,"连接提示","连接成功");m=new QSqlTableModel;m->setTable("student");ui->tableView->setModel(m);}else                                      //连接失败{QMessageBox::warning(this,"连接提示","连接失败");}
}Widget::~Widget()
{delete ui;
}void Widget::on_selectbutton_clicked()
{m->select();
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 《AI办公类工具PPT系列之五——ChatBA》
  • day_50
  • Vue3 组件 10
  • 使用密钥文件 SSH 登录服务器:Windows、macOS使用终端或连接工具
  • 日期类的实现
  • iptables: Chain Already Exists:完美解决方法
  • 通过因子分析识别消费者偏好的潜在因素的案例
  • 【异常错误】pycharm可以在terminal中运行,但是无法在run中运行(没有输出错误就停止了)
  • Java筑基之路:数组的深入了解学习!
  • 层序遍历判断完全二叉树
  • [LeetCode]46.全排列(python)
  • Ansys Rocky在电池制造行业应用
  • docker 里 oneapi 启动失败:failed to get gpt-3.5-turbo token encoder
  • 基于imx6ull平台移植ffmpeg3.4.5及ffmpeg验证
  • 数据分析案例-2024年裁员数据集可视化分析
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • Druid 在有赞的实践
  • ES6 ...操作符
  • FastReport在线报表设计器工作原理
  • HTTP 简介
  • IOS评论框不贴底(ios12新bug)
  • Java知识点总结(JavaIO-打印流)
  • Nodejs和JavaWeb协助开发
  • React+TypeScript入门
  • spring security oauth2 password授权模式
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 聚簇索引和非聚簇索引
  • 判断客户端类型,Android,iOS,PC
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 使用docker-compose进行多节点部署
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 项目管理碎碎念系列之一:干系人管理
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 7行Python代码的人脸识别
  • const的用法,特别是用在函数前面与后面的区别
  • 阿里云服务器购买完整流程
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • !!java web学习笔记(一到五)
  • ###STL(标准模板库)
  • #Linux(make工具和makefile文件以及makefile语法)
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • #每天一道面试题# 什么是MySQL的回表查询
  • (2)空速传感器
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (python)数据结构---字典
  • (二)JAVA使用POI操作excel
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (接口自动化)Python3操作MySQL数据库
  • (六)vue-router+UI组件库
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (算法)前K大的和
  • (算法设计与分析)第一章算法概述-习题
  • (转) ns2/nam与nam实现相关的文件
  • (转)树状数组
  • (转)详解PHP处理密码的几种方式