最近为了课设过了一段野人般的生活…我也是初步学习MFC,所以很多东西都不甚了解,很多技巧和用法都是综合各家之言而成…有什么不确切的地方,希望大家指正……
首先介绍一下我的程序,没有想到新颖的课题,就做了人事档案管理系统,这个系统最主要的就是连接操作数据库,我就以自己工作的顺序介绍一下。
一、准备工作
我建立的是单文档工程,虽然没用单文档界面(还是以对话框为主),但是个人觉得单文档连接数据库更直接,另外,我是用ADO连接SQL数据库(之前的建库以及添加数据源就不说了),建好就开始工作啦!!
二、数据库连接
1.在StdAfx.h中加入:
#import "C:\Program Files\Common Files\System\ado\msado15.dll"no_namespace rename("EOF","adoEOF")
2.添加ADO类(封装了操作数据库的多个函数及变量)
ADO.h:
classADO
{
public:
CString username;
ADO();
virtual ~ADO();
UINT GetRecordsetCount(_RecordsetPtrpRecordset); //返回记录集个数
void CloseConn(); //关闭连接
void CloseRecordset(); //关闭记录集
_RecordsetPtr& OpenRecordset(CString sql); //打开记录集
void OnInitADOConn(); //初始化COM环境
_RecordsetPtr m_pRecordset; //智能指针
_ConnectionPtr m_pConnection;
};
ADO.cpp:
ADO::ADO()
{
}
ADO::~ADO()
{
}
//名称:OnInitADOConn
//功能:初始化COM环境(AQL专用,如果用ACCESS的话需要修改)
/
voidADO::OnInitADOConn()
{
::CoInitialize(NULL);
try
{
m_pConnection.CreateInstance("ADODB.Connection");
_bstr_tstrConnect="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist SecurityInfo=False;Initial Catalog=MFC Design1;Data Source=.";
m_pConnection->Open(strConnect,"","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
}
//