C++与Qt实现MySQL数据库的增删改查

该博客主要介绍了使用C++和Qt实现MySQL数据库增删改查的相关内容。包含头文件说明、demo实例链接,详细阐述了数据库连接、增加、删除、更改、查询的实现,还展示了实现结果,并提供了样例下载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

头文件

MySQL数据库的安装与环境配置,网上大把,可参考:
https://www.cnblogs.com/xtu-wlf1212/p/8764015.html
头文件包含:

#include <QtSql/qsql.h>
#include <QtSql/qsqldatabase.h>
#include <QtSql/qsqlquery.h>
#include <QDebug>

demo一览

具体Demo实例:https://download.youkuaiyun.com/download/birenxiaofeigg/11244437
在这里插入图片描述

数据库连接,增删改查实现:

连接

void TestSql::on_pbtConnect_clicked()
{
	ui.tbShow->append(QString::fromLocal8Bit("数据库连接中......"));

	testDB = QSqlDatabase::addDatabase("QMYSQL");
	testDB.setHostName("localhost");//127.0.0.1
	testDB.setPort(3306);
	testDB.setUserName("root");
	testDB.setPassword("123456");

	testDB.open();
	if (!testDB.open())
	{
		ui.tbShow->append(QString::fromLocal8Bit("MySql数据库连接失败!"));
	}
	else
	{
		ui.tbShow->append(QString::fromLocal8Bit("MySql数据库连接成功!"));

		ui.pbtExit->setEnabled(true);
		ui.pbtFindAll->setEnabled(true);

		ui.pbtAdd->setEnabled(true);
		ui.pbtChange->setEnabled(true);
		ui.pbtMove->setEnabled(true);
		ui.pbtFind->setEnabled(true);
	}
}

增加

void TestSql::on_pbtAdd_clicked()
{
	uint id = ui.leID1->text().toUInt(0, 10);
	QString name = ui.leName1->text();
	uint age = ui.leAge1->text().toUInt();
	QString borndate = ui.leBorn1->text();

	QSqlQuery* query = new QSqlQuery(testDB);
	QString strCmd = QString("insert into manage.testForm values(%1,'%2',%3,'%4')")
		.arg(id)
		.arg(name)
		.arg(age)
		.arg(borndate);

	query->prepare(strCmd);
	if (query->exec())
	{
		ui.tbShow->append(QString::fromLocal8Bit("testForm表,数据添加成功!"));
		ui.leID1->setText(QString::number(id + 1));
	}
	else
	{
		ui.tbShow->append(QString::fromLocal8Bit("数据添加失败,请检查!"));
	}

}

删除

void TestSql::on_pbtMove_clicked()
{
	uint id = ui.leID3->text().toUInt();
	QString name = ui.leName3->text();
	uint age = ui.leAge3->text().toUInt();
	QString dateTime = ui.leBorn3->text();

	QSqlQuery* query = new QSqlQuery(testDB);
	QString strCmd;
	if (id)
		strCmd = QString("delete from manage.testForm where ID=%1").arg(id);
	else if (!name.isEmpty())
		strCmd = QString("delete from manage.testForm where Name='%1'").arg(name);
	else if (age)
		strCmd = QString("delete from manage.testForm where Age=%1").arg(age);
	else if (!dateTime.isEmpty())
		strCmd = QString("delete from manage.testForm where BornDate='%1'").arg(dateTime);
	else
	{
		ui.tbShow->append(QString::fromLocal8Bit("数据为空,删除失败"));
		return;
	}


	query->prepare(strCmd);
	if (query->exec())
		ui.tbShow->append(QString::fromLocal8Bit("删除成功!"));
	else
		ui.tbShow->append(QString::fromLocal8Bit("出现意外,删除失败!"));
}

更改

void TestSql::on_pbtChange_clicked()
{
	uint id = ui.leID4->text().toUInt();
	QString name = ui.leName4->text();
	uint age = ui.leAge4->text().toUInt();
	QString dateTime = ui.leBorn4->text();

	QSqlQuery* query = new QSqlQuery(testDB);
	QString strCmd;
	if (id)
	{
		if (!name.isEmpty())
		{
			strCmd = QString("update manage.testForm set Name='%1' where ID='%2'")
					.arg(name).arg(id);
			query->prepare(strCmd);
			if (query->exec())
				ui.tbShow->append(QString::fromLocal8Bit("Name更改成功!"));
			else
				ui.tbShow->append(QString::fromLocal8Bit("Name更改失败!"));
		}			
		if (age)
		{
			strCmd = QString("update manage.testForm set Age=%1 where ID='%2'")
				.arg(age).arg(id);
			query->prepare(strCmd);
			if (query->exec())
				ui.tbShow->append(QString::fromLocal8Bit("Age更改成功!"));
			else
				ui.tbShow->append(QString::fromLocal8Bit("Age更改失败!"));
		}
			
		if (!dateTime.isEmpty())
		{
			strCmd = QString("update manage.testForm set BornDate='%1' where ID='%2'")
				.arg(dateTime).arg(id);
			query->prepare(strCmd);
			if (query->exec())
				ui.tbShow->append(QString::fromLocal8Bit("BornDate更改成功!"));
			else
				ui.tbShow->append(QString::fromLocal8Bit("BornDate更改失败!"));
		}
			
	}	
	else
	{
		ui.tbShow->append(QString::fromLocal8Bit("ID为空,改动失败"));
		return;
	}
	
}

查询

void TestSql::on_pbtFind_clicked()
{
	uint id = ui.leID2->text().toUInt();
	QString name = ui.leName2->text();
	uint age = ui.leAge2->text().toUInt();
	QString dateTime = ui.leBorn2->text();

	QSqlQuery* query = new QSqlQuery(testDB);
	QString strCmd;
	if (id)// ID唯一
	{
		strCmd = QString("select * from manage.testForm where ID=%1").arg(id);
		query->prepare(strCmd);
		if (query->exec())
		{
			ui.tbShow->append(QString::fromLocal8Bit("ID查询成功!"));
			ui.tbShow->append(QString::fromLocal8Bit("根据ID查询到的记录为:"));
			......
			......
			......
	}

}

实现结果:

连接-查询全部-断开

在这里插入图片描述

数据库增加

在这里插入图片描述

数据库查询

在这里插入图片描述

数据库删除

在这里插入图片描述

数据库更改

在这里插入图片描述
本样例下载连接:https://download.youkuaiyun.com/download/birenxiaofeigg/11244437

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值