MFC调用mysql操作

2023-11-11

要用MySQL提供的C语言API,首先要包含API的头文件目录,也就是在MFC工程属性中的“包含目录”下添加MySQL安装目录的“include”文件夹。因为API是以动态链接库的形式打包的,所以还要在MFC工程属性中的“库目录”下添加MySQL安装目录的“lib”文件夹,结果如下图所示:

\


vs2008如下设置:





因为是动态链接库,所以在做完上面的配置后,要将MySQL安装目录下的libmysql.dll文件拷贝到MFC工程目录下,如果以后要发行的话这个也要打包进去。昨晚这一步,我们只需要在用到MySQL的头文件中包含MySQL头文件就可以正常使用此数据库了。代码如下:

 

?
1
2
3
#include "winsock.h" //因为数据库是通过网络连接的,必须包含网络相关头文件
#include "mysql.h" //这个没什么好说的,mysql头文件自然要包含 
#pragma comment(lib, "libmySQL.lib" )//附加依赖项,也可以在工程属性中设置

做完上面的配置,我们已经可以正常的使用MySQL提供的API了,下面分门别类的来讲讲具体的操作。

 

连接数据库:

 

?
1
2
3
4
5
6
7
8
9
10
11
12
MYSQL m_sqlCon;
mysql_init(&m_sqlCon);//初始化数据库对象
if (!mysql_real_connect(&m_sqlCon, "localhost" , "root" , "123" , "test" , 3306, NULL , 0))//localhost:服务器地址,可以直接填入IP;root:账号;123:密码;test:数据库名;3306:网络端口 
{
     AfxMessageBox(_T( "数据库连接失败!" ));
     return ;
}
else //连接成功则继续访问数据库,之后的相关操作代码基本是放在这里面的
{
     AfxMessageBox(_T( "数据库连接成功!" ));
}
mysql_close(&m_sqlCon);//关闭Mysql连接

 

得到数据库中表数据:

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
mysql_query(&m_sqlCon, "SET NAMES 'GB2312'" );//设置数据库字符格式,解决中文乱码问题
if (mysql_real_query(&m_sqlCon, "select * from 物料属性" , (unsigned long)strlen( "select * from 物料属性" )))// 查询数据库中的 "物料属性" 表 
{ return ;}
res = mysql_store_result(&m_sqlCon);//得到存储结果集 
if ( NULL == res)//如果为空则返回
{ return ; }
int listrow = 0;
while (row = mysql_fetch_row(res))//重复读取行,把数据放入列表中,直到row为 NULL 
{
     for ( int rols = 0; rols < cols; rols++)
     {
         CString myreaddata(row[rols]);
         if (rols==0)
         {
             list->InsertItem(listrow, myreaddata);//添加第一个学生数据
         }
         else
         {
             list->SetItemText(listrow, rols, myreaddata);
         }
     }
     listrow++;
}
清空数据表内容:
?
1
2
3
mysql_query(&m_sqlCon, "SET NAMES 'GB2312'" );//设置数据库字符格式,解决中文乱码问题
char *mysqlstatements = "DELETE 物料属性.*FROM 物料属性" ;//sql操作语句
mysql_real_query(&m_sqlCon, mysqlstatements, (unsigned long)strlen(mysqlstatements));//清空 "物料属性"

插入数据表内容:

 

?
1
2
3
sprintf_s(mysqlstatements, "INSERT INTO 物料属性(物料编号,物料名称,所属类别,计量单位,样品单价,批量单价) value('%s', '%s', '%s', '%s', '%s', '%s')" ,
     mysqlinsertpoint[0], mysqlinsertpoint[1], mysqlinsertpoint[2], mysqlinsertpoint[3], mysqlinsertpoint[4], mysqlinsertpoint[5]); //sql操作语句
mysql_real_query(&m_sqlCon, mysqlstatements, (unsigned long)strlen(mysqlstatements));//插入数据到 "物料属性"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MFC调用mysql操作 的相关文章

  • Debian小技巧1--常用软件服务配置方法

    Debian小技巧1 常用软件服务配置方法 最近 由于需要开始使用debian系统了 在使用过程会碰见一些经典的配置和操作方法 因此和往常一样记录下自己操作过程 后续将持续更新 优化 一方面以便于自己查阅 另一方面分享给有需要的人学习 1
  • 西门子触摸屏vb脚本从入门到精通_如何使用西门子触摸屏做一个弹窗?

    上篇文章我们讲到 西门子触摸屏变量的三种更新方式 根据命令 循环连续 循环使用 默认 这篇我们将一个实际案例 现场有台设备想在执行开机过程时触摸自动跳到执行过程的画面 假如PLC有个执行开机的变量M0 0 当M0 0为1的时候 自动切换画面
  • vue 评论小案例

  • vqvae详细解释

    模型综述 VQ VAE Vector Quantised Variational AutoEncoder 首先出现在论 Neural Discrete Representation Learning VAE假设隐向量分布服从高斯分布 VQV
  • 一些开源的,好看的前端组件/样式库

    以下是一些受欢迎的开源 CSS 样式库 Bootstrap https getbootstrap com Materialize CSS https materializecss com Bulma https bulma io Found
  • linux下测试磁盘的读写IO速度

    使用dd命令 这不是一个专业的测试工具 不过如果对于测试结果的要求不是很苛刻的话 平时可以使用来对磁盘的读写速度作一个简单的评估 另外由于这是一个免费软件 基本上 NIX系统上都有安装 首先了解两个特殊设备 dev null 伪设备 回收站
  • 使用OpenCV-python对植物图片进行分类

    文章目录 图片分类的思路和需要加载的库函数说明 核心代码分析 数据预处理 文件处理和命名匹配 数据预处理 特征提取和标签提取 学习模型 数据划分和模型训练 预测输出 利用训练好的模型进行图片分类 完整代码附录和运行结果 图片分类的思路和需要
  • vmware无法打开内核设备 打开模块DevicePowerOn电源失败

    无法打开内核设备 VMCIDev VMX 重叠 I O 操作在进 行中 你想要在安装 VMware Workstation 前重启吗 打开模块DevicePowerOn电源失败 启动VM时报错如上 解决方法一 亲测可行 对虚拟机相对应的 v
  • 使用GetProcAddress获取C++重载函数

    GetProcAddress函数是用来在动态加载完动态链接库后 从链接库中获取函数地址的 它的用法如下 FARPROC GetProcAddress HMODULE hModule LPCSTR lpProcName hModule参数就是
  • Spring三级缓存详解

    Spring三级缓存是为了解决对象间的循环依赖问题 A依赖B B依赖A 这就是一个简单的循环依赖 我们来先看看三级缓存的源码 1 查看 获取Bean 的源码 注意getSingleton 方法 public class DefaultSin
  • PLSQL Developer安装和配置

    PLSQL Developer安装 下载安装地址 https www allroundautomations com registered plsqldev 1 自己选择合适版本 2 接下来默认安装即可 3 本地连接直接输入 4 远程连接需
  • Canvas 画布随机变换背景色

  • JavaScript获取当前时间函数封装

    JavaScript获取当前时间函数封装 function getNowDate var str var weekList 日 一 二 三 四 五 六 var date new Date var year date getFullYear
  • Labelme标注灰度图,执行出现错误:AssertionError: rgb must be 3 dimensional的解决方案

    labelme标注灰度图后 执行json to dataset之后 出现错误 AssertionError rgb must be 3 dimensional 解决办法 找到安装labelme的位置 找到json to dataset py
  • 二等分计算机打印机尺寸,电脑打印纸三种等分是什么尺寸

    满意答案 kimwk 2015 11 10 采纳率 55 等级 8 已帮助 6710人 打印纸一般规格有宽度为241mm的和381mm的 三等分就是341 381 3 而长边这边尺寸也是固定的 是280mm 一般长边长度可以分等分 有不分等
  • Movidius神经计算棒3-完整配置开发环境

    上面是我的微信和QQ群 欢迎新朋友的加入 cd ncsdk make install 这里有个题外话 英特尔这个玩意搞得不太友好 很多软件都有版本限制 高了或或者低了都要不得 这倒也没啥事 但是有个受影响的是 官方提供的make insta
  • 【Linux】系统下各个文件目录的作用

    目录名 作用 bin 普通用户的可执行文件 二进制 boot linux内核和系统启动文件 dev 设备文件 etc 系统配置文件 home 用户主目录 initrd 启动时挂在initrdimg映像文件 lib 共享库文件 lost fo
  • MySQL必知必会——第六章过滤数据

    过滤数据 本章将讲授如何使用SELECT语句的WHERE子句指定搜索条件 使用WHERE子句 数据库一般包含大量的数据 很少需要检索表中所有的行 通常只会根据需求来提取部分表数据 只检索所需数据需要指定搜索条件 search criteri
  • hdf5 简介、中文文档、中英对照文档 下载

    hdf5 文档 下载链接 含jar包 源码 pom 组件名称 中文 文档 下载链接 中英对照 文档 下载链接 hdf5 1 12 0 1 5 5 jar hdf5 1 12 0 1 5 5 API文档 中文版 zip hdf5 1 12 0
  • Android应用开发 一课一得

    Android是一种基于Linux平台开发的操作系统 Android应用开发这一门课 以项目为载体 以实做为手段 我通过学习和实践 对Android的开发流程 核心概念和常见技术有了基本的理解 在本学期的Android课程中 我首先学习了A

随机推荐

  • windows编译zookeeker动态库供C++链接使用以及遇到的错误处理方法

    windows下面C 链接zookeeper资料不多 特此记录一下 编译环境VS 2015 一 相关安装包安装下载 1 zookeeper zookeeper3 6 4 下载zip包解压即可 2 ant apache ant 1 9 16
  • 【实践5】Python pandas正则替换Excel表中单元格的标点符号等特殊符号

    简单介绍 这里举例替换特殊符号 有时在进行网页爬虫的时候会获取到一些含有特殊格式或符号的内容 但其中的符号像逗号 百分号这些并不是我们需要的 可以使用正则或是pandas将其替换掉 这个用例是使用正则的规则 通过pandas的apply函数
  • Unity3D_touch事件和点击事件

    现在要实现鼠标点击在哪个位置 物体就朝向哪里运动 所以是将两个部分融合到一起 1 物体的运动 2 鼠标的点击 if Input GetMouseButtonDown 0 0在PC上表示鼠标的左键 在手机上表示落下的第一个手指头 以此类推 好
  • WebLogic Server 远程代码执行漏洞复现 (CVE-2023-21839)

    1 产品简介 Oracle WebLogic Server是一个统一的可扩展平台 用于在本地和云端开发 部署和运行企业应用程序 例如 Java WebLogic Server提供了Java Enterprise Edition EE 和Ja
  • simunlink的“Three-Phase V-I Measurement”所测线电压次序问题

    simunlink的 Three Phase V I Measurement 所测线电压次序问题 仿真实例 很多同学在使用simulink进行仿真时可能会用到 Three Phase V I Measurement 这个模块 在该模块par
  • np.random.normal()函数

    np random normal 的意思是一个正态分布 normal这里是正态的意思 numpy random normal loc 0 scale 1 0 size shape 参数loc float 正态分布的均值 对应着这个分布的中心
  • osg 的warning C4003: “max”宏的实参不足 error C2589: “(” : “::”右边的非法标记

    原来是需要把max用括号括起来避免和windows定义的宏混淆 std numeric limits max 或者 std max 因为Windef h中定义了 ifndef max define max a b a gt b a b en
  • Oracle中的数据类型——NUMBER

    NUMBER类型概述 NUMBER类型可以用来存储0 正数 负数 数据范围是1 10 130 1 10126 不能等于或者大于1 10126 否则Oracle会报错 算数表达式的结果同理 NUMBER类型的定义 NUMBER precisi
  • 计算机e盘丢失了,电脑E盘突然不见了怎么找回_电脑的E盘突然不见了的解决方法...

    电脑一般会有C D E F等多个磁盘 用于储存不同的程序 方便管理 近期 有用户说自己准备打开E盘安装软件 结果发现E盘突然不见了 这样就没办法把软件安装在E盘上 有什么办法能让E盘恢复 方法有的 现在整理具体操作教程给大家 具体方法如下
  • C++强制类型转换

    C 类型转换 C风格的强制转换 在C 基本的数据类型中 可以分为四类 整型 浮点型 字符型 布尔型 其中数值型包括 整型与浮点型 字符型即为char 1 将浮点型数据赋值给整型变量时 舍弃其小数部分 2 将整型数据赋值给浮点型变量时 数值不
  • 手机网站支付宝支付

    1 支付宝开放平台 支付宝手机网站支付 具体的请求参数和返回参数等相关数据 https docs open alipay com 203 107090 2 支付demo 下载手机网站支付相关的demo 这里的demo和APP支付提供的dem
  • Android webview登录手机QQ

    选择我们的应用 在对应的上述我们定义的QQActivity的onCreate或onNewIntent 如果该activity在栈里出现过 里就能响应了 通过intent取出url 找了url特征字符没有发现token或code 才发现在系统
  • 数据分析之Pandas从入门到放弃:代码+实战,9分钟带你推开Pandas大门!!!

    今天整理了一下Pandas的使用方法 应该是全网整理最完整 最简洁易读 立整 的一篇文章 嗯 别不信 确实是这样的 跟着小鱼 带你9分钟推开Pandas的大门 从此走上数据分析师的苦逼之路 Pandas使用方法 1 Pandas的基本定义
  • 制作个人图片api接口

    制作个人图片api接口 前言 准备工作 过程介绍 操作过程 上传图片到github仓库中 在github中进行项目的发布 编写php文件 引用jsDeliver上的文件 在nginx配置文件中配置好php fpm相关配置 测试 测试php配
  • MFC设计

    细说UI线程和Windows消息队列 转载于 http blog csdn net huasonl88 article details 8589396 0 tsina 1 99086 397232819ff9a47a7b7e80a40613
  • Ubuntu18.04版本安装ssh及连接ssh的常见问题

    下面我们来解决Ubuntu18 04版本安装ssh及连接ssh的常见问题 及解决方法 题外话 安装Ubuntu时会提示一句Please remove the installation medium then reboot 提示这段话 可以直
  • 以太坊网络架构解析

    以太坊网络架构解析 版权 0x7F 知道创宇404区块链安全研究团队 https www cnblogs com southx p 9334639 html 0x00 前言 区块链的火热程度一直以直线上升 其中以区块链 2 0 以太坊为代表
  • 有效服务台管理的5个关键度量指标

    从格言到ITIL 这些标准格言容易与ITSM和ITIL直接联系起来 通过ITIL实施ITSM的一个重要好处是其为持续创建 部署 实施和停役IT服务提供了一个框架 持续改进是ITIL的内在特性 它包含于ITIL服务生命周期管理的持续流程改进
  • python创建和修改yaml文件

    1 创建yaml import os import yaml desired caps train dataTrain 2007 train txt val dataTrain 2007 val txt nc 2 names a b cur
  • MFC调用mysql操作

    要用MySQL提供的C语言API 首先要包含API的头文件目录 也就是在MFC工程属性中的 包含目录 下添加MySQL安装目录的 include 文件夹 因为API是以动态链接库的形式打包的 所以还要在MFC工程属性中的 库目录 下添加My