热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Qt5操作Mysql数据库

Qt5.9.9,MSVC201564bit,Mysql5.564bit(编译器位数需与MySql位数一致)1.找到mysql安装文件中的libmysql

Qt5.9.9,MSVC2015 64bit,Mysql5.5 64bit(编译器位数需与MySql位数一致)
1.找到mysql安装文件中的libmysql.dll文件,复制到D:\Qt\Qt5.9.9\5.9.9\msvc2015_64\bin;
2.项目文件pro添加 QT += sql;
3.添加头文件 #include (没有空格);
4.实例:点击一次按钮给数据库增加一条数据。
尤其注意mainwindow.cpp中注释“//主键不能进行设置,否则报错。表中算上主键共五个字段,只设置后四个。”。
main.cpp

#include "mainwindow.h"
#include
int main(int argc, char *argv[])
{QApplication a(argc, argv);MainWindow w;w.show();return a.exec();
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include
#include
#include
#include
#include QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void on_pushButton_clicked();private:Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
int num1,num2,num3,num4;
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);db.setHostName("localhost");db.setDatabaseName("world");db.setUserName("root");db.setPassword("123");
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::on_pushButton_clicked()
{ num1&#43;&#61; 1;num2&#43;&#61; 1;num3&#43;&#61; 1;num4&#43;&#61; 1;if(db.open()){QSqlQuery query;//使用query.exec("select * from city");传送固定sql语句。//query.exec("select * from city");//使用query.prepare("insert into city values(?,?,?,?,?)");可以在程序外修改sql语句。query.prepare("insert into city values(?,?,?,?,?)");//主键不能进行设置&#xff0c;否则报错。表中算上主键共五个字段&#xff0c;只设置后四个。query.bindValue(1,num1);query.bindValue(2,num2);query.bindValue(3,num3);query.bindValue(4,num4);bool success &#61; query.exec();if(!success){QSqlError lastError &#61; query.lastError();//返回数据库的错误信息qDebug() <}


推荐阅读
  • 抽象工厂模式 c++
    抽象工厂模式包含如下角色:AbstractFactory:抽象工厂ConcreteFactory:具体工厂AbstractProduct:抽象产品Product:具体产品https ... [详细]
  • C基本语法C程序可以定义为对象的集合,这些对象通过调用彼此的方法进行交互。现在让我们简要地看一下什么是类、对象,方法、即时变量。对象-对象具有状态和行为 ... [详细]
  • 本文介绍了如何在Windows操作系统中安装FFTW库,并详细说明了使用Visual Studio 2010进行4096点快速傅里叶变换(FFT)的步骤。包括下载预编译文件、生成库文件以及配置环境等关键环节。 ... [详细]
  • 本文详细介绍了Oracle RMAN中的增量备份机制,重点解析了差异增量和累积增量备份的概念及其在不同Oracle版本中的实现。通过对比两种备份方式的特点,帮助读者选择合适的备份策略。 ... [详细]
  • 深入解析C++ Atomic编程中的内存顺序
    在多线程环境中,为了防止多个线程同时修改同一数据导致的竞争条件,通常会使用内核级同步对象,如事件、互斥锁和信号量等。然而,这些方法往往伴随着高昂的上下文切换成本。本文将探讨如何利用C++11中的原子操作和内存顺序来优化多线程编程,减少不必要的开销。 ... [详细]
  • Prim算法在处理稠密图时表现出色,尤其适用于边数远多于顶点数的情形。传统实现的时间复杂度为 \(O(n^2)\),但通过引入优先队列进行优化,可以在点数为 \(m\)、边数为 \(n\) 的情况下显著降低时间复杂度,提高算法效率。这种优化方法不仅能够加速最小生成树的构建过程,还能在大规模数据集上保持良好的性能表现。 ... [详细]
  • 拖拉切割直线 ... [详细]
  • 本文主要解决了在编译CM10.2时出现的关于Samsung Exynos 4 HDMI HAL库中SecHdmiV4L2Utils.cpp文件的编译错误。 ... [详细]
  • 本文介绍了多种Eclipse插件,包括XML Schema Infoset Model (XSD)、Graphical Editing Framework (GEF)、Eclipse Modeling Framework (EMF)等,涵盖了从Web开发到图形界面编辑的多个方面。 ... [详细]
  • 本文探讨了 Boost 库中的 Program Options 组件,这是一个强大的工具,用于解析命令行参数和配置文件。文章介绍了如何正确设置和使用该组件,包括处理复杂选项和负数值的方法。 ... [详细]
  • 本文详细解析了Java中流的概念,特别是OutputStream和InputStream的区别,并通过实际案例介绍了如何实现Java对象的序列化。文章不仅解释了流的基本概念,还探讨了序列化的重要性和具体实现步骤。 ... [详细]
  • GCC(GNU Compiler Collection)是GNU项目下的一款功能全面且高效的多平台编译工具,广泛应用于Linux操作系统中。本文将详细介绍GCC的特点及其基本使用方法。 ... [详细]
  • 下面,我用最简洁的文字尽可能作最详尽的回答:两者之间存在的“五大不同”。与此同时,着重说明MicrosoftWindows64位(x64)操作系统,相对于32位(x86)操作系统的最大优势和劣势是什 ... [详细]
  • oracle用户密码过期-ORA-28001:口令已经失效操作步骤:[BEGIN]2018-10-2317:25:43Lastlogin:MonSep308:46:322018fr ... [详细]
  • 题目概述:我们应该知道,int是32位的(9位十进制左右),longlong是64位的(19位十进制左右)&# ... [详细]
author-avatar
陶磊2922_502
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有