教程从零开始:vs2015MFC连接mySQL数据库

1、准备:

下载zip格式的mysql,这个博客https://blog.csdn.net/Jason160918/article/details/84777248推荐是用msi比较简单,我已经下载zip了就没用,不过中间出的错,完全可以参考这个博主,真的是一步一步按照他操作就可以了,手动点赞。

2、配置:

配置很简单,参考这个就可以了https://www.2cto.com/database/201706/648717.html

3、编程

api参考博文https://www.cnblogs.com/smh2015/p/6427512.html
在编码文件中包含头文件:
#include “winsock.h”
#include “mysql.h”
插入代码:
MYSQL m_sqlCon;
//初始化数据库对象
mysql_init(&m_sqlCon);
//localhost:服务器地址,可以直接填入IP;root:账号;
//123:密码;test:数据库名;3306:网络端口
// if (!mysql_real_connect(&m_sqlCon, “localhost”, “root”,
// “123456”, “test”, 3306, NULL, 0))
if (!mysql_real_connect(&m_sqlCon, “127.0.0.1”, “root”,
“123456”, “animal”, 3306, NULL, 0))
{
AfxMessageBox(_T(“数据库连接失败!”));
return;
}
else//连接成功则继续访问数据库,之后的相关操作代码基本是放在这里面的
{
AfxMessageBox(_T(“数据库连接成功!”));
UpdateData(true);
//设置数据库字符格式,解决中文乱码问题
mysql_query(&m_sqlCon, “set names ‘gb2312’”);
m_num.Format(_T("%d"), saveListCnt++); ;//后期自动生成序号
char* num = (char*)m_num.GetBuffer();
char* inputcode = (char*)m_userCode.GetBuffer();
char* outputcode = (char*)m_checkCode.GetBuffer();
charcrccode= (char)m_crcCode.GetBuffer();
char insert[1000];
sprintf_s(insert, “insert into animal(number, inputcode, outputcode,crccode) values (’%d’, ‘%s’, ‘%s’,’%s’)”,
num, inputcode, outputcode, crccode);
// 执行 sql 语句。
// mysql_query() 的返回值份很多情形, 进行判断使要注意。
if (mysql_query(&m_sqlCon, insert) == 0)
{
AfxMessageBox(_T(“插入数据成功!”));
}
else {
AfxMessageBox(_T(“插入数据失败!”));
}
}
UpdateData(false);
mysql_close(&m_sqlCon);//关闭Mysql连接

4、编译调试。代码拿来主义的话肯定是有错误的,自己需要根据自己的需要适当做出修改。

5、可能出现的问题:

问题1:
教程从零开始:vs2015MFC连接mySQL数据库_第1张图片
关闭了远程调试器的网络连接,百度的办法:
教程从零开始:vs2015MFC连接mySQL数据库_第2张图片
重启后问题解决,然后出现了问题2:
教程从零开始:vs2015MFC连接mySQL数据库_第3张图片
此时就可以按照https://blog.csdn.net/Jason160918/article/details/84777248进行修复dll及后续问题。
问题3:
如果你的电脑在调用cmd.exe的时候,无法识别sc命令,或者指定的服务器未安装,如下图
教程从零开始:vs2015MFC连接mySQL数据库_第4张图片
教程从零开始:vs2015MFC连接mySQL数据库_第5张图片
需要在bin目录下执行mysql install,参考地址https://www.cnblogs.com/xsmile/p/7751406.html
安装成功的截图,此时查询sc query mysql可以看到当前状态,然后转到li目录下运行 mysqld --initialize-insecure新建data文件夹,就可能出现问题4:
教程从零开始:vs2015MFC连接mySQL数据库_第6张图片
解决mysqld不是内部或外部命令的方法是配置环境变量,参考https://jingyan.baidu.com/article/ff42efa9d505e4c19e220232.html

然后服务器启动,如图
教程从零开始:vs2015MFC连接mySQL数据库_第7张图片
第一次进行登录SQL,执行mysql -uroot -p
让输入密码,初次登录不用输入密码,直接回车,如图,关于设置密码的方法,前面博文中都有写,不在多说。
教程从零开始:vs2015MFC连接mySQL数据库_第8张图片
显示当前全部的数据库的IP和ID:mysql>show full processlist;
教程从零开始:vs2015MFC连接mySQL数据库_第9张图片
配置成功后,运行MFC,出现数据库连接失败,只需要修改localhost为127.0.0.1就可以了,意思是连接本地数据库。
教程从零开始:vs2015MFC连接mySQL数据库_第10张图片
看看结果吧
教程从零开始:vs2015MFC连接mySQL数据库_第11张图片
然后就是保存输入的数据,结果显示数据库连接成功,插入数据失败
教程从零开始:vs2015MFC连接mySQL数据库_第12张图片
查询知道,我要插入的数据库中数据,必须得新建数据表单及约定好格式,按照下面新建,标红的全部是命令,有没有很贴心?在这里插入图片描述

教程从零开始:vs2015MFC连接mySQL数据库_第13张图片教程从零开始:vs2015MFC连接mySQL数据库_第14张图片
教程从零开始:vs2015MFC连接mySQL数据库_第15张图片
至此创建表单成功!!!参考的博文https://www.cnblogs.com/hynazwaa/p/9937602.html里面还有设置主键的操作,因为第一次接触数据库,所以还不明白,mark一下,有空在研究。至此插入数据成功
教程从零开始:vs2015MFC连接mySQL数据库_第16张图片
查看输入的表单中的结果
教程从零开始:vs2015MFC连接mySQL数据库_第17张图片
貌似成功了,实际没有。为什么number是随机数,code全部都是单字符呢?这个代码中可能还是相当有问题,需要再仔细排查一下,从开始做MFC到接触MYsql总共花了一天半的时间,嗯嗯,对于这个以前没接触过的菜鸟来说还可以了,继续努力吧~留个念想(忽略标错位置的红框),哪里出的问题呢?
教程从零开始:vs2015MFC连接mySQL数据库_第18张图片
好不容易快整完了,才知道不用MYSQL,他想用office自带的access数据库,早跟你确认的时候干嘛玩去了,问了好几遍,确认用SQL,现在给我整这个???真是。。。嗯嗯。。。真气人,怪不得我昨天删掉了他的微信,继续研究吧,谁让今天是七夕呢,淡定继续,看在自己默默加了微信,又发了个1314的红包上,原谅他了

你可能感兴趣的:(数据库,MFC)