Qt使用MySQL例子_世界新视野
(相关资料图)
一、说明
Qt使用MySQL,进行增删改查等操作
二、.pro
#-------------------------------------------------## Project created by QtCreator 2022-04-15T10:51:50##-------------------------------------------------QT += core guiQT += sqlgreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = MySqlDemoTEMPLATE = app# The following define makes your compiler emit warnings if you use# any feature of Qt which has been marked as deprecated (the exact warnings# depend on your compiler). Please consult the documentation of the# deprecated API in order to know how to port your code away from it.DEFINES += QT_DEPRECATED_WARNINGS# You can also make your code fail to compile if you use deprecated APIs.# In order to do so, uncomment the following line.# You can also select to disable deprecated APIs only up to a certain version of Qt.#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0CONFIG += c++11SOURCES += \main.cpp \MainWindow.cppHEADERS += \MainWindow.hFORMS += \MainWindow.ui# Default rules for deployment.qnx: target.path = /tmp/${TARGET}/binelse: unix:!android: target.path = /opt/${TARGET}/bin!isEmpty(target.path): INSTALLS += target
三、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 namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void connectDB();void on_showDBButton_clicked();void on_addDBButton_clicked();void on_deleteNameButton_clicked();void on_deleteAgeButton_clicked();void on_deleteScoreButton_clicked();void on_findNameButton_clicked();void on_findAgeButton_clicked();void on_findScoreButton_clicked();void on_changeNameButton_clicked();void on_changeAgeButton_clicked();void on_changeScoreButton_clicked();void textEditShow(QString str);private:Ui::MainWindow *ui;};#endif // MAINWINDOW_H
五、MainWindow.cpp.cpp
#include "MainWindow.h"#include "ui_MainWindow.h"#include #include #include #include #include MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow){ui->setupUi(this);connectDB();}MainWindow::~MainWindow(){delete ui;}//连接数据库void MainWindow::connectDB(){QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");db.setHostName("127.0.0.1"); //数据库服务器IP,本地服务器db.setPort(3306); //端口号db.setDatabaseName("test"); //数据库名db.setUserName("root"); //用户名db.setPassword(""); //密码bool ok = db.open();if (!ok){qDebug()<<"open sql error:" << db.lastError();}//创建表QSqlQuery query;query.exec("create table student(id int primary key auto_increment, name varchar(255), age int, score int)ENGINE=INNODB;");//删除整个表//query.exec("drop table student");}//显示所有void MainWindow::on_showDBButton_clicked(){//遍历QSqlQuery query;bool ok = query.exec("select *from student");if (!ok){QString str = QString("show error:%1").arg(query.lastError().text());textEditShow(str);return;}ui->textEdit->append("******************************");while(query.next()) //遍历完为false{//方式1:以下标ui->textEdit->append(QString("%1 姓名:%2 年龄:%3 成绩:%4").arg(query.value(0).toInt()).arg(query.value(1).toString()).arg(query.value(2).toInt()).arg(query.value(3).toInt()));//方式2:以字段//qDebug()<< query.value("id").toInt()<< query.value("name").toString()//<< query.value("age").toInt()<< query.value("score").toInt();}}//添加void MainWindow::on_addDBButton_clicked(){QSqlQuery query;//单行插入// 在创建表时id设置了auto_increment,所以插入时加不加id都可以//bool ok = query.exec("insert into student(id, name, age, score) values(1, "张三", 18, 80)");QString str = QString("insert into student(name, age, score) values("%1", %2, %3)").arg(ui->nameLineEdit->text()).arg(ui->ageLineEdit->text()).arg(ui->scoreLineEdit->text());bool ok = query.exec(str);if (!ok){QString str = QString("add error:%1").arg(query.lastError().text());textEditShow(str);}else{on_showDBButton_clicked();}//多行插入// query.prepare("insert into student(name, age, score) values(?,?,?)"); //?是占位符// QVariantList name;// QVariantList age;// QVariantList score;// name << "李四" << "王五" << "赵六";// age << 19 << 20 << 21;// score << 85 << 90 << 95;// //按顺序给字段绑定相应的值// query.addBindValue(name);// query.addBindValue(age);// query.addBindValue(score);// //执行预处理命令// ok = query.execBatch();// if (!ok)// {// qDebug()<<"execBatch error:" << query.lastError();// }}//根据姓名删除void MainWindow::on_deleteNameButton_clicked(){QSqlQuery query;//删除某一行QString str = QString("delete from student where name="%1"").arg(ui->nameLineEdit->text());bool ok = query.exec(str);if (!ok){QString str = QString("delete error:%1").arg(query.lastError().text());textEditShow(str);}else{on_showDBButton_clicked();}}//根据年龄删除void MainWindow::on_deleteAgeButton_clicked(){QSqlQuery query;//删除某一行QString str = QString("delete from student where age="%1"").arg(ui->ageLineEdit->text());bool ok = query.exec(str);if (!ok){QString str = QString("delete error:%1").arg(query.lastError().text());textEditShow(str);}else{on_showDBButton_clicked();}}//根据成绩删除void MainWindow::on_deleteScoreButton_clicked(){QSqlQuery query;//删除某一行QString str = QString("delete from student where score="%1"").arg(ui->scoreLineEdit->text());bool ok = query.exec(str);if (!ok){QString str = QString("delete error:%1").arg(query.lastError().text());textEditShow(str);}else{on_showDBButton_clicked();}}//根据姓名查找void MainWindow::on_findNameButton_clicked(){QSqlQuery query;//查询QString str = QString("select id,age,score from student where name="%1"").arg(ui->nameLineEdit->text());bool ok = query.exec(str);if (!ok){QString str = QString("find error:%1").arg(query.lastError().text());textEditShow(str);}else{if(query.size() == 0){textEditShow("没有找到");return;}ui->textEdit->append("******************************");while(query.next()) //遍历完为false{ui->textEdit->append(QString("%1 id:%2 年龄:%3 成绩:%4").arg(ui->nameLineEdit->text()).arg(query.value(0).toInt()).arg(query.value(1).toInt()).arg(query.value(2).toInt()));}}}//根据年龄查找void MainWindow::on_findAgeButton_clicked(){QSqlQuery query;//查询QString str = QString("select id,name,score from student where age="%1"").arg(ui->ageLineEdit->text());bool ok = query.exec(str);if (!ok){QString str = QString("find error:%1").arg(query.lastError().text());textEditShow(str);}else{if(query.size() == 0){textEditShow("没有找到");return;}ui->textEdit->append("******************************");while(query.next()) //遍历完为false{ui->textEdit->append(QString("%1 id:%2 姓名:%3 成绩:%4").arg(ui->ageLineEdit->text()).arg(query.value(0).toInt()).arg(query.value(1).toString()).arg(query.value(2).toInt()));}}}//根据成绩查找void MainWindow::on_findScoreButton_clicked(){QSqlQuery query;//查询QString str = QString("select id,name,age from student where score="%1"").arg(ui->scoreLineEdit->text());bool ok = query.exec(str);if (!ok){QString str = QString("find error:%1").arg(query.lastError().text());textEditShow(str);}else{if(query.size() == 0){textEditShow("没有找到");return;}ui->textEdit->append("******************************");while(query.next()) //遍历完为false{ui->textEdit->append(QString("%1 id:%2 姓名:%3 年龄:%4").arg(ui->scoreLineEdit->text()).arg(query.value(0).toInt()).arg(query.value(1).toString()).arg(query.value(2).toInt()));}}}//根据年龄和成绩,修改姓名void MainWindow::on_changeNameButton_clicked(){//修改QSqlQuery query;if(!ui->ageLineEdit->text().isEmpty() && !ui->scoreLineEdit->text().isEmpty()){QString str = QString("update student set name="%1" where age=%2 and score=%3").arg(ui->nameLineEdit->text()).arg(ui->ageLineEdit->text()).arg(ui->scoreLineEdit->text());bool ok = query.exec(str);if (!ok){QString str = QString("update error:%1").arg(query.lastError().text());textEditShow(str);}else{on_showDBButton_clicked();}}else{QString str = QString("年龄和成绩不能为空");textEditShow(str);}}//根据姓名和成绩,修改年龄void MainWindow::on_changeAgeButton_clicked(){QSqlQuery query;if(!ui->nameLineEdit->text().isEmpty() && !ui->scoreLineEdit->text().isEmpty()){QString str = QString("update student set age=%1 where name="%2" and score=%3").arg(ui->ageLineEdit->text()).arg(ui->nameLineEdit->text()).arg(ui->scoreLineEdit->text());bool ok = query.exec(str);if (!ok){QString str = QString("update error:%1").arg(query.lastError().text());textEditShow(str);}else{on_showDBButton_clicked();}}else{QString str = QString("姓名和年龄不能为空");textEditShow(str);}}//根据姓名和年龄,修改成绩void MainWindow::on_changeScoreButton_clicked(){QSqlQuery query;if(!ui->nameLineEdit->text().isEmpty() && !ui->ageLineEdit->text().isEmpty()){QString str = QString("update student set score=%1 where name="%2" and age=%3").arg(ui->scoreLineEdit->text()).arg(ui->nameLineEdit->text()).arg(ui->ageLineEdit->text());bool ok = query.exec(str);if (!ok){QString str = QString("update error:%1").arg(query.lastError().text());textEditShow(str);}else{on_showDBButton_clicked();}}else{QString str = QString("姓名和年龄不能为空");textEditShow(str);}}//显示提示信息void MainWindow::textEditShow(QString str){ui->textEdit->append("******************************");ui->textEdit->append(str);}
六、MainWindow.ui
【领 QT开发教程 学习资料, 点击下方链接莬费领取↓↓ ,先码住不迷路~】
点击这里:
关键词:
上一篇:天天讯息:回望科幻梦想开始的地方
下一篇:最后一页
- Qt使用MySQL例子_世界新视野
- 天天讯息:回望科幻梦想开始的地方
- 兰帕德:作为教练我更成熟凯帕作为球员也是如此,他现在状态很好 要闻
- 8.4g超轻32GB大容量U盘仅需7元
- 当前通讯!“万桥飞架·摄影名家看贵州”丨用镜头捕捉交通之美
- 方大炭素:2022年净利润8.4亿元 同比降22.56% 当前视点
- 南京50名盾构机司机大比武,戴上VR眼镜“盾构掘进” 当前聚焦
- 焦点短讯!香港金管局:3月份外汇基金的境外资产达35807亿港元 增加159亿港元
-
观焦点:苍南县气象台发布雷电黄色预警【Ⅲ级/较重】
据国家突发事件预警信息发布网:苍南县气象台2023年04月14日17时48分发布雷电黄色预警信号:受强对流云团影
-
当前时讯:智慧云企 北京科技有限公司_对于智慧云企 北京科技有限公司简单介绍
智慧云企(北京)科技有限公司于2012年09月26日成立。法定代表人张凤彦,公司经营范围包括:技术开发、技术推
-
世界报道:港股收评:恒指涨0.46%、恒生科技指数涨0.1% 黄金、电力股走强,五矿资源涨超26%、长城汽车涨超9%
周五港股震荡,截至收盘,恒生指数涨0 46%,报20438 81点,恒生科技指数涨0 1%,报4164 03点,国企指数涨
-
昔日誉满全球的乒坛冠军,因嗜赌越混越臭,卓伟怒揭张继科老底儿
张继科事件又有最新进展。昔日誉满全球的乒乓国手,跟娱乐圈扯上关系后越混越臭,卓伟也来出面怒揭张继科老
X 关闭
X 关闭