(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)做简单的登录界面(详细)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-04-26MySQL查出时间比实际晚8小时的解决方案
- 2024-04-01JPA不识别MySQL的枚举类型
- 2024-03-30mysql数据库表卡死解决方法
- 2024-03-15MySQL多数据源笔记5-ShardingJDBC实战
- 2024-03-11natural join mysql
- 2024-03-11关于VS2017,VS2015 中利用 EF使用Mysql 不显示数据源问题解决方案
- 2024-02-26mysql 阿里云xb后缀备份文件恢复-icode9专业技术文章分享
- 2024-02-22docker mysql 5.7
- 2024-02-18从 20 多套 MySQL 到 1 套 TiDB丨骏伯网络综合运营管理平台应用实践
- 2024-02-07mysql 外键索引入门介绍,为什么工作中很少有人使用?