环境:VC++6.0

MySql版本:mysql-5.5.20-win32

MySql连接管理:mysql-connector-odbc-5.2.2-ansi-win32

MySql数据管理:HeidiSQL_7.0

首先是各种软件的安装先安装MySql数据库,其次是Connector和HeidiSQL,这里就不过多介绍了,MySql可以到http://www.mysql.com/处下载。

1.打开HeidiSQL,并登陆数据库如图

使用heidisql连接mysql数据库 heidisql怎么连接数据库_数据库

2. 新建数据库和表,这里我建立的是test数据库和user_table表

使用heidisql连接mysql数据库 heidisql怎么连接数据库_table_02

3. 设置表

使用heidisql连接mysql数据库 heidisql怎么连接数据库_styles_03

这个自行设置即可,顺便添加数据到表中。前期工作准备的就差不多了。

4. 设置数据源

在管理工具中找到数据源(ODBC)->添加->MySQL ODBC 5.2a Driver,然后设置我们的数据库以及用户名、密码、端口,

使用heidisql连接mysql数据库 heidisql怎么连接数据库_styles_04

完了之后可以Test一下,失败了再去找问题吧。

5. 打开VC6.0新建MFC基于对话框的程序

使用heidisql连接mysql数据库 heidisql怎么连接数据库_数据库_05

其中ListControl控件的styles为Report。

6.在对话框的头文件中添加一下两个头文件

#include <odbcinst.h>
#include <afxdb.h>

进入OnInitDialog函数中,填写一下代码

m_list.InsertColumn(0, _T("ID"), LVCFMT_LEFT, 80);
m_list.InsertColumn(1, _T("userName"), LVCFMT_LEFT, 100);
m_list.InsertColumn(2, _T("userPasswd"), LVCFMT_LEFT, 150);

db.Open(NULL, FALSE, FALSE, "ODBC;DSN=odbcTest;UID=root;PWD=123456");
rs.m_pDatabase = &db;
	
m_list.SetExtendedStyle(LVS_EX_FLATSB | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);


以上是设置ListControl控件的格式以及打开数据库,其中db和rs定义在头文件中分别是CDatabase和CRecordset类型。

由于在程序中需要频繁调用显示数据库的操作,因此将其封装成一个函数getRecord,如下

m_list.DeleteAllItems();
rs.Open(CRecordset::forwardOnly, _T("SELECT * FROM user_table order by id Desc"));

while (!rs.IsEOF())
{
	CString varID;
	rs.GetFieldValue("id", varID);
	m_list.InsertItem(0,varID);

	CString varName;
	rs.GetFieldValue("userName", varName);
	m_list.SetItemText(0, 1, varName);

	CString varPasswd;
	rs.GetFieldValue("userPasswd", varPasswd);
	m_list.SetItemText(0, 2, varPasswd);
	rs.MoveNext();
}
rs.Close();



在初始化函数中调用该函数,运行程序可以看到ListControl控件已经可以显示数据库中的数据了。

使用heidisql连接mysql数据库 heidisql怎么连接数据库_styles_06

7. 数据库操作

数据库操作主要是用以下语句实现的

CString sql;
sql.Format(_T("insert into user_table (userName, userPasswd) values('%s', '%s')"), m_userName, m_userPasswd);
db.ExecuteSQL(sql);


只要数据库语句会写,操作一般没问题的。

这里我是用弹出子对话框的形式来添加数据的。

使用heidisql连接mysql数据库 heidisql怎么连接数据库_数据库_07

按键被按下时即弹出此对话框,之后将数据返回到主对话框中,用的是全局变量和静态函数的方法,即子对话框通过静态函数将数据返回到主对话框中,在子对话框中添加初始化函数是增加WM_INITDIALOG消息实现的。

其他细节性的东西这里就不赘述了。

参考文章:http://wenku.baidu.com/view/12b4790bbb68a98271fefa4c.html

参考文章:http://hi.baidu.com/hackxhj/item/cd895829d29058e950fd87ba