MFC 对MYSQL数据库相关操作

记得看过有人说,现在的软件基本上都是连着数据库的,如果一个软件没有跟数据库相连,基本没什么作用。虽然这种说法略显片面,但数据库之于软件的重要也是毋庸置疑的。

MFC连接数据库应该不算是什么新鲜的命题了,方法是有好几种的,本人试了下,感觉利用MySQL提供的C语言API来进行操作蛮方便的,所以在此记录下相关的操作。

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

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

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

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

连接数据库:

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连接  

得到数据库中表数据:

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++;
}

清空数据表内容:

mysql_query(&m_sqlCon, "SET NAMES 'GB2312'");//设置数据库字符格式,解决中文乱码问题
char *mysqlstatements = "DELETE 物料属性.*FROM 物料属性";//sql操作语句
mysql_real_query(&m_sqlCon, mysqlstatements, (unsigned long)strlen(mysqlstatements));//清空"物料属性"表  

插入数据表内容:

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));//插入数据到"物料属性"表
时间: 2024-08-04 03:17:47

MFC 对MYSQL数据库相关操作的相关文章

python中MySQL数据库相关操作

一 安装基本环境: 1 安装MySQL数据库, 本文使用的是mariadb数据库,与MySQL相似 1 挂载镜像文件(本次使用的是本地镜像文件) 2 启动MySQL数据库 3 创建用户名和密码并刷新 grant all(表示所有操作) on .(库.表(所有的,也可以指定)) to [email protected](设置用户名为root,链接为本地链接) identified by 'roiot123';(设置密码)flush privileges;(刷新权限) 4 修改默认字符集: serv

Python:MySQL数据库相关操作

系统环境 Ubuntu 16.04.2 LTS mysql Ver 14.14 Distrib 5.7.18, for Linux (x86_64) using  EditLine wrapper Python 3.5.2 pip 9.0.1 from /usr/local/lib/python3.5/dist-packages (python 3.5) 查看Python相关模块版本 pip3 pip3 freeze 问题1:安装mysql-connector-python时出现"Unable

MySQL密码相关操作

MySQL密码忘记了,操作步骤: 1.service mysqld stop 2.vim /etc/my.cnf  #编辑MySQL配置文件,找到[mysqld],在下面添加一行skip-grant-tables 3.mysql -u root -p直接进入MySQL控制台 4.update mysql.user set password=password('MySQL新密码') where User="root" and Host="localhost";    

MySQL库相关操作

========MySQL库相关操作====== 一.系统数据库 information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息.列信息.权限信息.字符信息等performance_schema: MySQL 5.5开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件.锁等现象 mysql: 授权库,主要存储系统用户的权限信息test: MySQL数据库系统自动创建的测试数据库 二.创建数据库 - 语法(help c

mysql数据库的操作复习

mysql数据库的操作可以分为四种:DDL,DML,DCL,TCL; DDL(data definition language):数据定义语言: CREATE:在数据库中创建新的数据对象 ALTER:修改数据库中对象的数据结构 DROP:删除数据库中的对象 DISABLE/ENABLE TRIGGER:修改触发器的状态 UPDATE STATISTIC:更新表/视图统计信息 TRUNCATE TABLE:清空表中数据 COMMENT:给数据对象添加注释 RENAME :更改数据对象名称 DML(

Mysql数据库常用操作

1.备份数据库 [[email protected] ~]# mysqldump -h 192.168.0.8 -uroot  -p'123456'  user >user.sql 2.查看mysql数据库字符集设置 mysql> show variables like 'character_set_%';+--------------------------+----------------------------+| Variable_name            | Value    

mysql数据库表操作及授权

表操作:增删改查 把/etc/passwd文件的内容导入 passwd表里. mysql>load data infile"/etc/passwd" into table passwd fields terminated by ":"; 基于前面的passwd表,完成下列操作: 1:列出uid低于500且3个字母的用户 mysql> select name from passwd where uid<500 and name like "

服务器用JDBC对mysql数据库进行操作

1:获取数据库连接 Connection connection=getConnection(); 2:准备SQL语句 3:调用Connection的creatStatement()方法获取Statement对象执行SQL语句 (注:Statement对象处理的SQL语句只能是INSERT,UPDATE或DELETE) statement=connection.createStatement(); statement.execute(SQL); 4:关闭Statement对象 5:关闭数据库连接

Python对MySQL数据库的操作

Python中,可以使用MySQLdb模块连接到MySQL数据库,对MySQL数据库进行操作 [第一步] MySQL安装 参考文档: http://blog.csdn.net/Jerry_1126/article/details/20837397 [第二步]连接到MySQL 创建数据库 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.5