Qt mysql数据库表的增加,删除,修改,查询操作

devtools/2024/11/9 16:45:04/

连接mysql数据库

bool MainWindow::connectToDatabase(QSqlDatabase &db, const QString &host, const QString &dbName, const QString &user, const QString &password)
{db = QSqlDatabase::addDatabase("QMYSQL");db.setHostName(host);db.setDatabaseName(dbName);db.setUserName(user);db.setPassword(password);if (!db.open()) {qDebug() << "数据库连接失败:" << db.lastError().text();return false;} else {qDebug() << "数据库连接成功!";return true;}
}

增加数据库表的数据:

QString username=ui->lineEdit->text();
QString password=ui->lineEdit_2->text();
QSqlQuery query;
//QString username=ui->lineEdit->text();
query.prepare("insert into sys.user values(?,?)");
query.addBindValue(username);
query.addBindValue(password);
if(!query.exec()){qDebug()<<"无法插入数据";QMessageBox::information(NULL, "增加表数据","增加失败",QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
}else{
QMessageBox::information(NULL, "增加表数据","增加成功",QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
Dialog::close();
}

查询数据库中的数据:

QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");QString host="localhost";QString dbName="sys";QString user="root";QString password="12345";this->connectToDatabase(db,host,dbName,user,password);QSqlQuery query=this->queryDatabase(db,"select * from user");/*while (query.next()) {QString result = query.value(0).toString();QString result1 = query.value(1).toString();qDebug() << result<<"   "<<result1;}*/QSqlQueryModel *model=new QSqlQueryModel(ui->tableView);model->setQuery(query);//将查询结果绑定到模型上ui->tableView->setModel(model);

修改表中的数据:

QString username = ui->lineEdit_3->text();QString password = ui->lineEdit_2->text();QSqlQuery query;//QString username=ui->lineEdit->text();//QSqlQuery query;QString str=QString("update user set password = ? where username = ?");query.prepare(str);query.addBindValue(password);query.addBindValue(username);if (!query.exec()) {qDebug() << "更新失败:" << query.lastError().text();QMessageBox::information(NULL, "更新表数据","更新失败",QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);} else {qDebug() << "更新成功";QMessageBox::information(NULL, "更新表数据","更新成功",QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);Dialog1::close();}

删除表中的数据:

QString username = ui->lineEdit_3->text();QSqlQuery query;//QString username=ui->lineEdit->text();//QSqlQuery query;QString str=QString("delete from user where username='%1'").arg(username);if (!query.exec(str)) {qDebug() << "删除失败:" << query.lastError().text();} else {qDebug() << "删除成功";}

这就是Qt对数据库表的增加,删除,修改,查询操作的代码。

查询某个用户的数据:

 QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");QString host="localhost";QString dbName="sys";QString user="root";QString password="12345";this->connectToDatabase(db,host,dbName,user,password);QString username = ui->lineEdit_4->text();QSqlQuery query=this->queryDatabase(db,QString("select * from user where username = '%1'").arg(username));/*while (query.next()) {QString result = query.value(0).toString();QString result1 = query.value(1).toString();qDebug() << result<<"   "<<result1;}*/QSqlQueryModel *model=new QSqlQueryModel(ui->tableView);model->setQuery(query);//将查询结果绑定到模型上ui->tableView->setModel(model);

能够实现界面的跳转整体代码如下:https://download.csdn.net/download/qq_32663053/89160527


http://www.ppmy.cn/devtools/1807.html

相关文章

计算机虚拟机服务器中了mallox勒索病毒怎么办Mallox勒索病毒解密流程工具

在当今社会&#xff0c;人们的工作生活离不开网络&#xff0c;尤其企业离不开网络办公&#xff0c;网络为企业提供了极大便利&#xff0c;大大提升了企业的生产效率与办公水平&#xff0c;但网络是一把双刃剑&#xff0c;在为企业提供便利的同时也为企业的数据带来严重威胁。近…

linux安装jdk

yum安装jdk 在linux上使用yum安装是非常粗暴无脑的&#xff0c;但仍然有需要注意的点&#xff0c;不然会掉坑里。这里说一下步骤。 1.1. 执行命令yum list |grep jdk查看可安装jdk版本 1.2. 选择一个java版本进行安装 这里我们希望安装java1.8&#xff0c;因为我们的机器是64位…

A13 STM32_HAL库函数 之 HAL-ETH通用驱动 -- B -- 所有函数的介绍及使用

A13 STM32_HAL库函数 之 HAL-ETH通用驱动 -- B -- 所有函数的介绍及使用 1 通用定时器&#xff08;TIM&#xff09;预览1.11 HAL_ETH_TxCpltCallback1.12 HAL_ETH_RxCpltCallback1.13 HAL_ETH_ErrorCallback1.14 HAL_ETH_ReadPHYRegister1.15 HAL_ETH_WritePHYRegister1.16 HAL…

【LeetCode热题100】【矩阵】旋转图像

题目链接&#xff1a;48. 旋转图像 - 力扣&#xff08;LeetCode&#xff09; 要将一个矩阵顺时针旋转90&#xff0c;数学公式是new[j][n-i-1]old[i][j]&#xff0c;要原地翻转的话&#xff0c;可以先水平翻转&#xff0c;即变成m[n-i-1][j]&#xff0c;再主对角线翻转&#xf…

迁移强化学习论文笔记(一)(Successor Features)

迁移强化学习论文笔记&#xff08;一&#xff09;&#xff08;Successor Features&#xff09; 一.Background and problem formulation M ≡ ( S , A , p , R , γ ) M \equiv(\mathcal{S}, \mathcal{A}, p, R, \gamma) M≡(S,A,p,R,γ) S \cal S S:状态空间 A \cal A A&…

Qt如何编写生成后事件

我们都知道VS能编写生成后事件&#xff0c;用于指定程序编译之后执行某些命令行&#xff0c;常见的如文件的拷贝、清理等等&#xff1b;那么&#xff0c;Qt能否支持支持在 .pro 文件中指定生成后事件呢&#xff0c;答案是肯定的。 下面是给出的一个简洁的例子&#xff1a; DEST…

比特币减半后适合挖矿吗

减半是指比特币挖矿奖励减半的过程&#xff0c;每当挖出210,000个区块后&#xff0c;比特币的挖矿奖励就会减半。减半后&#xff0c;每个区块的挖矿奖励减少一半&#xff0c;这对于矿工来说意味着他们挖到新的比特币的速度将会减慢。 减半对于挖矿是否适合取决于多个因素&…

MDK-ARM Keil5.38 下载安装环境搭建

一、keil软件介绍 KEIL是公司的名称&#xff0c;有时候也指KEIL公司的所有软件开发工具&#xff0c;目前2005年Keil由ARM公司收购&#xff0c;成为ARM的公司之一。 MDK&#xff08;Microcontroller Development Kit&#xff09; 也称MDK-ARM、KEIL MDK、RealView MDK、KEIL For…