MFC对数据库的操作

您所在的位置:网站首页 mfc数据库操作 MFC对数据库的操作

MFC对数据库的操作

2024-07-01 23:12:22| 来源: 网络整理| 查看: 265

目录

在mysql数据库中创建所需要的表

创建数据库

创建表

配置项目环境

​编辑在vs中配置包含目录、引用目录、库目录和附加依赖项

添加库文件

添加头文件

实现对数据库的操作

打开数据库

数据增删改查

关闭数据库

整体代码

示例 

注意事项

在mysql数据库中创建所需要的表 创建数据库 CREATE DATABASE mfc_study;

创建表 CREATE TABLE person( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(30), age INT );

INSERT INTO person VALUES (2,"张三",18);#数据查询语句 SELECT *FROM person; DELETE FROM person ; 配置项目环境

根据mysql的位数确定需要用64位还是32位编译

mysql -V;//在cmd中确认mysql是32位还是64位

在vs中配置包含目录、引用目录、库目录和附加依赖项

包含路径:...\MySQL\MySQL Server 8.0\include

引用路径:...\MySQL\MySQL Server 8.0\lib

库目录:...\MySQL\MySQL Server 8.0\lib

 附加依赖项:libmysql.lib

添加库文件

两个库文件:libmysql.dll、libmysql.lib,将库文件添加到项目当中

添加头文件

#include    //本地数据库不需要 #include

实现对数据库的操作

vs中创建一个mfc解决方案,对话框模式

打开数据库 if (!mysql_real_connect(&m_DatabaseName, "localhost", "root", "123456", "mfc_study", 3306, NULL, 0)) { AfxMessageBox(_T("数据库连接失败")); return; } 数据增删改查 char query[100]; sprintf_s(query, "insert into person(id, name, age) values(%d, \'%s\', %d)", id, name, age); if (mysql_query(&m_DatabaseName, query)==0) { AfxMessageBox(_T("插入成功")); } else { AfxMessageBox(_T("插入失败")); } 关闭数据库 mysql_close(&m_DatabaseName); 整体代码 void CConnectMYSQLDlg::OnBnClickedBtninsert() //成功 {//MFC连接到MySQL数据库 UpdateData(TRUE);//将写到控件上的数据更新到变量当中 //UpdateData(FALSE);//将写到变量中的数据同步到控件当中 MYSQL m_DatabaseName;//连接到数据库 mysql_init(&m_DatabaseName);//mysql初始化 if (!mysql_real_connect(&m_DatabaseName, "localhost", "root", "123456", "mfc_study", 3306, NULL, 0)) { AfxMessageBox(_T("数据库连接失败")); return; } mysql_query(&m_DatabaseName, "SET NAMES 'GB2312'"); //m_DatabaseName是MYSQL类型******* CString idStr ,nameStr,ageStr; m_Id.GetWindowText(idStr); m_Name.GetWindowText(nameStr); m_Age.GetWindowText(ageStr); int id=_ttoi(idStr);//获取id char* name = (char*)nameStr.GetBuffer();//获取name int age = _ttoi(ageStr);//获取age /*===============防呆(没啥用)===========*/ if (idStr.IsEmpty()) { AfxMessageBox(_T("学号不能为空")); return; } if (nameStr.IsEmpty()) { AfxMessageBox(_T("姓名不能为空")); return; } if (ageStr.IsEmpty()) { AfxMessageBox(_T("年龄不能为空")); return; } /*===============防呆(没啥用)===========*/ char query[100]; sprintf_s(query, "insert into person(id, name, age) values(%d, \'%s\', %d)", id, name, age); if (mysql_query(&m_DatabaseName, query)==0) { AfxMessageBox(_T("插入成功")); } else { AfxMessageBox(_T("插入失败")); } mysql_close(&m_DatabaseName); // TODO: 在此添加控件通知处理程序代码 } 示例 

注意事项

1、最好使用多字节字符集,否则会出现乱码

2、如果要保存中文,需要用到如下代码,否则会插入失败

mysql_query(&m_DatabaseName, "SET NAMES 'GB2312'"); //m_DatabaseName是MYSQL类型*******

3、如果设置了主键,主键不能重复,否则会插入失败



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭