MFC对数据库的操作 |
您所在的位置:网站首页 › mfc数据库操作 › MFC对数据库的操作 |
目录 在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、如果设置了主键,主键不能重复,否则会插入失败 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |