MFC(Microsoft Foundation Classes)是微软公司提供的一组面向对象的类库,用于开发Windows应用程序。MFC提供了丰富的GUI控件、Windows API封装、数据库接口等功能,方便开发人员实现高质量的Windows程序。本文将介绍如何使用MFC实现对MySQL数据库的操作,包括连接数据库、执行SQL语句、读取数据、关闭连接等。
连接数据库
首先需要安装MySQL数据库驱动程序,这里以MySQL ODBC驱动为例。在MFC程序中需要包含头文件"afxdb.h",然后通过CDatabase类进行数据库连接。
CDatabase db;
CString strConnect = _T("ODBC;DRIVER={MySQL ODBC 5.3 Unicode Driver};SERVER=localhost;DATABASE=test;USER=root;PASSWORD=123456");
// 连接数据库
BOOL bOpen = db.OpenEx(strConnect, CDatabase::noOdbcDialog);
if(bOpen)
{
// 数据库连接成功
// ...
}
else
{
// 数据库连接失败
// ...
}
执行SQL语句
在连接成功后,可以通过ExecuteSQL方法执行SQL语句,该方法返回执行结果的行数或-1表示执行失败。这里以插入一条数据为例。
CString strSqlInsert = _T("INSERT INTO student(name,age) VALUES ('Tom',20)");
int nRet = db.ExecuteSQL(strSqlInsert);
if(nRet > 0)
{
// 插入成功
}
else
{
// 插入失败
}
读取数据
通过CRecordset类可以读取数据库中的数据,该类提供了MoveFirst、MoveNext、GetFieldValue等方法操作数据。这里以查询所有学生信息为例。
CString strSqlSelect = _T("SELECT * FROM student");
CRecordset rst(&db);
if(rst.Open(CRecordset::snapshot, strSqlSelect))
{
CString strName, strAge;
// 读取数据
while(!rst.IsEOF())
{
rst.GetFieldValue(_T("name"), strName);
rst.GetFieldValue(_T("age"), strAge);
// 处理数据
cout << strName << ", " << strAge << endl;
// 移动到下一行
rst.MoveNext();
}
rst.Close();
}
关闭连接
在操作结束后需要调用Close方法关闭数据库连接。
if(db.IsOpen())
{
db.Close();
}
完整代码示例
#include "stdafx.h"