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

时间:2024-05-23 19:39:03

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

原创 2017年04月05日 16:40:32
[cpp] view plain copy
  1. <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">第一步:新建一个基于对话框的MFC项目:</span>  

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

[cpp] view plain copy
  1. //因为数据库是通过网络连接的,必须包含网络相关头文件  
  2. #include "winsock.h"  
  3. //这个没什么好说的,mysql头文件自然要包含    
  4. #include "mysql.h"  
  5. void Cmysql_testDlg::OnBnClickedInsertButton()  
  6. {  
  7.     // TODO: 在此添加控件通知处理程序代码  
  8.     MYSQL m_sqlCon;  
  9.     //初始化数据库对象  
  10.     mysql_init(&m_sqlCon);  
  11.       
  12.     //localhost:服务器地址,可以直接填入IP;root:账号;  
  13.     //123:密码;test:数据库名;3306:网络端口    
  14.     if (!mysql_real_connect(&m_sqlCon, "localhost""root",  
  15.         "123456""test", 3306, NULL, 0))  
  16.     {  
  17.         AfxMessageBox(_T("数据库连接失败!"));  
  18.         return;  
  19.     }  
  20.     else//连接成功则继续访问数据库,之后的相关操作代码基本是放在这里面的  
  21.     {  
  22.         AfxMessageBox(_T("数据库连接成功!"));  
  23.   
  24.         UpdateData(true);  
  25.         //设置数据库字符格式,解决中文乱码问题  
  26.         mysql_query(&m_sqlCon, "set names 'gb2312'");  
  27.         char* num = (char*)m_num.GetBuffer();  
  28.         char* name = (char*)m_name.GetBuffer();  
  29.         char* age = (char*)m_age.GetBuffer();  
  30.   
  31.         char insert[1000];  
  32.         sprintf_s(insert, "insert into student(num, name, age) values (\'%s\', \'%s\', \'%s\')",  
  33.             num, name, age);  
  34.   
  35.         // 执行 sql 语句。    
  36.         // mysql_query() 的返回值份很多情形, 进行判断使要注意。    
  37.         if (mysql_query(&m_sqlCon, insert) == 0)  
  38.         {  
  39.             AfxMessageBox(_T("插入数据成功!"));  
  40.         }  
  41.         else {  
  42.             AfxMessageBox(_T("插入数据失败!"));  
  43.         }  
  44.     }  
  45.     UpdateData(false);  
  46.     mysql_close(&m_sqlCon);//关闭Mysql连接  
  47.   
  48. }  
这样代码已经写好了,但是还要修改字符集

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

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

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

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


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

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

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

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