用VS2017的MFC连接mysql数据库并写入数据

第一步:新建一个基于对话框的MFC项目:

                                                        

第二步:对项目进行配置,让它可以用代码连接到数据库:

1.由于电脑和数据库有32位和64位的,所以要根据自己的电脑和安装的数据库的情况,自己选择,

点击 ‘项目’ ——》 ‘属性‘ ——》’配置管理器‘,在这里可以选择自己需要的位数;

      

2.点击 ‘项目’ ——》 ‘属性‘ ——》’VC++属性‘,对其包含目录,引用目录和库目录进行配置。

                                     

(1) 选中包含目录后, 右边会出现下拉箭头, 点击该箭头,再点击 ‘编辑’,把你电脑里 MySQL 安装目录中的 include文件的路径填写在编辑框里面:

    

(2)步骤同上,对引用目录和库目录进行配置。 分别在引用目录和包含目录的编辑框中填写你电脑里MySQL安装目录中的lib 文件的路径,如图:

              


3.对附加依赖项进行设置。

   在左侧点击 ‘配置属性’——》‘链接器’——》‘输入’,然后在右边的附加依赖项中加入 “ libmysql.lib”编辑框就行了。


4.将 MySql 安装目录中 libmysql.dll和 libmysql.lib 两个文件拷贝到当前项目的主目录下,以及主目录下与项目名同名的文件夹下。如图:

               

写到这数据库基本已经可以连上了

下面开始写代码,但在这之前要在数据库中新建一个数据库(test),并在这个数据库中新建一个表(student)如下图:


1.把项目工程的界面弄成如下效果:

2.分别给上面的三个编辑框添加为 CString 类型的变量:m_num,m_name,m_age;

3.数据上传在‘插入’按钮的消息处理函数中实现,代码如下:

//因为数据库是通过网络连接的,必须包含网络相关头文件
#include "winsock.h"
//这个没什么好说的,mysql头文件自然要包含  
#include "mysql.h"
void Cmysql_testDlg::OnBnClickedInsertButton()
{
	// TODO: 在此添加控件通知处理程序代码
	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))
	{
		AfxMessageBox(_T("数据库连接失败!"));
		return;
	}
	else//连接成功则继续访问数据库,之后的相关操作代码基本是放在这里面的
	{
		AfxMessageBox(_T("数据库连接成功!"));

		UpdateData(true);
		//设置数据库字符格式,解决中文乱码问题
		mysql_query(&m_sqlCon, "set names 'gb2312'");
		char* num = (char*)m_num.GetBuffer();
		char* name = (char*)m_name.GetBuffer();
		char* age = (char*)m_age.GetBuffer();

		char insert[1000];
		sprintf_s(insert, "insert into student(num, name, age) values (\'%s\', \'%s\', \'%s\')",
			num, name, age);

		// 执行 sql 语句。  
		// mysql_query() 的返回值份很多情形, 进行判断使要注意。  
		if (mysql_query(&m_sqlCon, insert) == 0)
		{
			AfxMessageBox(_T("插入数据成功!"));
		}
		else {
			AfxMessageBox(_T("插入数据失败!"));
		}
	}
	UpdateData(false);
	mysql_close(&m_sqlCon);//关闭Mysql连接

}
这样 代码已经写好了,但是还要修改字符集

点击 ‘项目’ ——》 ‘属性‘ ——》‘常规’,在右面有个字符集,把它改成 ‘使用多字节字符集’如图:

样在向数据库中写入数据室就不会报错了。

4.调试运行代码 代码,效果如下:



打开数据库可以看到数据已经写入成功

好了,到这数据库已经连接完成了

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页