(VS2019 MFC连接 mysql)做简单的登录界面(详细)

2021/6/3 2:22:12

本文主要是介绍(VS2019 MFC连接 mysql)做简单的登录界面(详细),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

前言

1、系统环境:Window10,VS2019,mysql-8.0.23-winx64 (注意都是 64 bit)

2、这是一个简单的MFC的登录界面。程序,博主放在下面链接里,可自行下载。这篇博主算是教程。

SupermarketCashierS.zip-C++文档类资源-CSDN下载

https://download.csdn.net/download/qq_34438969/19323183

3、本文主要参考链接如下,但难受的是发现自己用的VS2019版本里没有ODBC Wizard,所以查了一些资料后才解决这个问题。

如果你用的版本不是VS2019,可以试用下面的方法来连接数据库。 

MFC+MySQL(ODBC数据源)实现数据库登录详细教程(用vs实现)

https://blog.csdn.net/qq_43389721/article/details/104729364

4、题外话:博主打算做个简单的超市收银系统,这只是第一步。

 

一、创建 MFC 程序

1、打开Visual Studio 2019, 点击 “ 创建新项目 ”,选择 “ MFC应用 ”。

 

对了,如果你的VS没有安装MFC,

可以进入文件路径 “ C:\Program Files (x86)\Microsoft Visual Studio\Installer ” 

双击 “ setup.exe ” ,打开Visual Studio Installer,点击“ 修改 ”,

进行安装。(请安装红框内的内容)

 

2、选择 “ MFC应用 ”后,点击 “ 下一步 ”,填写 “ 项目名称 ” 和 “ 位置 ”后点击 “ 创建 ”,应用程序类型选择 “ 基于对话框 ”,点击 “ 完成 ”。博主在此的项目名称为 “ SupermarketCashierS ”。

二、登录界面基本内容

1、用控件做出如下简单的登录界面,右击先选择 “ 添加类 ” ,填写类名为 “ CLogin ”;再右击选择 “ 添加变量 ”,把控件的类别设为 “ 值 ”,填写 “ 名称 ” 和 “ 访问 ”。把密码框属性为 “ 行为 ” 的 “ 密码 ” 设为 true。

 

 

三、连接 mysql 数据库

这第三点为重点,注意。

1、首先博主的 mysql 版本是 64 bit 的,要注意了。所以用的平台都是用 x64,再点击 “ 配置管理器 ”处,把平台都设为 x64。

特别的是,把配置属性的 “ 环境 ” 填写为你系统安装 mysql 的路径下的 bin 文件夹,即 “ PATH = D:\mysql\mysql-8.0.23-winx64\bin;  ”,分号别忘了。

 

 

2、在你安装 mysql 的文件夹中,找到 “ lib ” 文件夹下的 “ libmysql.lib ” 和 “ libmysql.dll ”,复制这两个文件到创建 MFC 程序的同级目录下,还有在它里面也要放,如图。

 

3、修改 “ VC++ 目录 ”中的 包含目录、 引用目录、 库目录,其路径分别是你系统里安装 mysql 路径的 include、lib、lib 文件夹。

再修改 “ C/C++ ” 的常规,和  “ 链接器 ” 的常规和输入,见图。

 

四、设置 mysql 数据库

1、首先记得启动 mysql 服务,先用管理员运行 DOS 界面,输入“net stop mysql”,停止 mysql 服务,再按键 “ Win + R ”,输入 “ cmd ”,即如下图:

PS C:\WINDOWS\system32> net start mysql
MySQL 服务正在启动 ..
MySQL 服务已经启动成功。
 
PS C:\WINDOWS\system32>

 

2、创建数据库 admins,表格 admin ,输入字段如下:

 

五、上代码

1、在 “ pch.h ” 中添加一行代码 “ #include<afxdb.h> ”。

 

2、双击 “ 登录 ” 按钮,跳转到 “ void CSupermarketCashierSDlg::OnBnClickedOk() ” 中。填写以下代码:

void CSupermarketCashierSDlg::OnBnClickedOk()
{
	// Login Button
	//CDialogEx::OnOK();

	GetDlgItem(IDC_EDIT1)->GetWindowText(m_name); //获得输入的用户名
	GetDlgItem(IDC_EDIT2)->GetWindowText(m_psw); //获得输入的密码

	const char user[] = "root"; //填写你的 mysql 用户名
	const char pswd[] = "123456";  //填写你的 mysql 密码
	const char host[] = "localhost";
	const char table[] = "admins";  //填写你的 mysql 表名
	unsigned int port = 3306;

	MYSQL_RES* res;
	MYSQL_ROW row;
	MYSQL mysqlCon;

	if (m_name.IsEmpty() || m_psw.IsEmpty())
	{
		MessageBox(_T("用户名或密码不能为空!"), _T("用户登录信息"));
		return;
	}

	mysql_init(&mysqlCon);
	if (!mysql_real_connect(&mysqlCon, host, user, pswd, table, port, NULL, 0))
	{
		AfxMessageBox(_T("访问数据库失败!"));
	}
	else
	{
		mysql_query(&mysqlCon, "SET USER GBK"); //设置字符集
		AfxMessageBox(_T("访问数据库成功!"));
	}


	//mysql_query(&myCont, "SET NAMES GBK"); //设置编码格式,否则在cmd下无法显示中文 
    // 如果你的用户名是中文,加上上面这句;

	int ress = mysql_query(&mysqlCon, "select name, psw from admin");

	if ( ress == 0 ) //检测查询成功为0,不成功则非0
	{
		res = mysql_store_result(&mysqlCon); //保存查询到的数据到 res
		if (mysql_num_rows(res) == 0) //查询结果为空
		{
			AfxMessageBox(_T("用户不存在"));
		}
		else
		{

			row = mysql_fetch_row(res);
			if (m_psw == row[1])
			{
				mysql_free_result(res);
				MessageBox(_T("登录成功!"));
			}
			else
			{
				AfxMessageBox(_T("密码错误!"));
			}
		}


	}
	else
	{
		AfxMessageBox(_T("访问失败!"));
	}

	mysql_close(&mysqlCon);

}

 

PS:

(1)如果忘记你的 mysql 密码,可以看博主这篇博文:

Win10 mysql-8.0.23-winx64 忘记 mysql 密码解决方法(详细步骤)

https://blog.csdn.net/qq_34438969/article/details/116647580

 

(2)如果你在 mysql 设置登录用户名的密码为数字,要修改字符集为使用多字节字符集。

 

六、运行代码,出现以下界面,则成功

 

 

 



这篇关于(VS2019 MFC连接 mysql)做简单的登录界面(详细)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程