VisualStudio2019 + qt+MySql实现与Navicat连接

VisualStudio2019 + qt+MySql实现与Navicat连接

main.cpp

#include "Login_Widget.h"
#include <QtWidgets/QApplication>
#include <QSqlDatabase>  //连接数据库
#include <QDebug>
#include <QSqlError> //输出错误信息

/*VS+Qt实现用户登录界面:
*    1.新建主窗口:
*        设计登录界面
*    2.连接数据库:
*        添加数据库SQL模块
*         项目右键-->属性-->Qt Project Setting-->Qt Modules-->Sql
*        把libmysql.lib 和 libmysql.dll文件复制到工程文件下
*        路径:D:\Windows11\Engineering\MySql5.7\lib
         项目属性配置:
         项目右键-->属性-->C/C++  -->附加包含目录:D:/Windlws11/Engineering/Mysql5.7/include
         链接器-->输入-->附加依赖项:libmsql.lib
*    3.Qt操            作数据库
*    4.QSettings记录用户登录信息
*    5.新建子窗口:
*         项目右键-->添加-->模块-->Qt-->Qt Widget Class
*    6.实现窗口切换
*    7.实现最小化窗口和关闭窗口
*    8.实现窗口整体可拖动

*/

int main(int argc, char* argv[])
{
	QApplication a(argc, argv);

	//连接Mysql数据库
	QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");  //创建mysql数据库连接
	db.setHostName("localhost");  //主机服务器
	db.setPort(3306);  //端口
	db.setUserName("root");  //用户名
	db.setPassword("775413");  //密码
	db.setDatabaseName("mydb");  //数据库名
	if (db.open())
	{
		qDebug() << "数据库连成功";
	}
	else
	{
		qDebug() << "数据库连成功";

		qDebug() << db.lastError().text();
	}

	Login_Widget w;
	w.show();
	return a.exec();
}

Login_Widget.cpp

#include "Login_Widget.h"
#include "MainWidget.h" //跳转到MainWidget窗口
#include <QSqlQuery>  //操作数据库
#include <QSqlError> //输出错误信息
#include <QDebug>
#include <QMessageBox>
#include <QSettings>  //读写配置文件
//#pragma execution_character_set("utf-8")  //设置字符编码

Login_Widget::Login_Widget(QWidget* parent)
	: QWidget(parent)
{
	ui.setupUi(this);

	//从配置文件中读取用户名和密码
	QSettings setting("config.ini", QSettings::IniFormat);
	QString account = setting.value("section/account").toString();
	QString password = setting.value("section/password").toString();
	ui.accountEdit->setText(account);
	ui.passwordEdit->setText(password);

	//实现用户注册功能 并 向数据库插入数据
	connect(ui.registBtn, &QPushButton::clicked, this, [=]()
		{
			//接收用户输入
			QString account = ui.accountEdit->text(); //用户账号
			QString password = ui.passwordEdit->text(); //密码
			//插入数据
			QSqlQuery query;  //操作数据库
			QString qs = QString("insert into user(account,password) values('%1','%2')").arg(account).arg(password);
			if (query.exec(qs))
			{
				//如果插入数据成功
				QMessageBox::information(this, "注册", "注册成功");
			}
			else
			{
				QMessageBox::information(this, "注册", "注册失败");
				qDebug() << query.lastError(); //输出错误信息
				return;
			}
		});

	//实现用户登录并查询数据信息
	connect(ui.loginBtn, &QPushButton::clicked, this, [=]()
		{
			//接收用户输入的数据
			QString account = ui.accountEdit->text();//用户账户
			QString password = ui.passwordEdit->text();//密码

			//查询数据:
			QSqlQuery query; //操作数据库
			QString qs = QString("select * from user where account = '%1' and password = '%2'").arg(account).arg(password);
			if (!query.exec(qs))
			{
				//如果没有查询到记录
				qDebug() << query.lastError().text();
				return;
			}
			//获取查询数据:
			if (query.next())
			{
				//获取数据
				QMessageBox::information(this, "登录", "登录成功");

				//实现界面跳转
				this->hide();  //隐藏当前窗口
				MainWidget* tw = new MainWidget();  //创建新窗口
				tw->show(); //显示新建窗口

				//在配置文件中记录账号和密码
				if (ui.checkBox->isChecked())
				{
					//选中
					//创建配置文件
					QSettings setting("config.ini", QSettings::IniFormat);  //配置文件在工程目录下
					//把用户账号和密码写到配置文件中
					setting.beginGroup("section"); //节
					setting.setValue("account", account);
					setting.setValue("password", password);
					setting.endGroup();  //结束
				}
			}
			else
			{
				QMessageBox::information(this, "登录", "登录失败");
				qDebug() << query.lastError().text();
			}
		});
}

Login_Widget::~Login_Widget()
{}
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值