在MFC中创建DataAdo项目对话框,在资源视图上加上一个list control控件,变量名m_list,Styles View设为Report。
在项目DataAdo文件下创建db1的ACESS数据库,表名为表1,字段名称姓名、性别。
1、在stdafx.h头文件最后添加以下代码引入ADO动态库文件
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace\
rename("EOF","adoEOF")rename("BOF","adoBOF")
2、在DataAdo.cpp文件BOOL CDataAdoApp::InitInstance()函数中加入代码
::CoInitialize(NULL);//com初始化
::CoUninitialize(); //放在InitInstance()函数最后return FALSE;语名前面,释放com库。
3、在DataAdoDlg.h头文件class CDataAdoDlg : public CDialog类声明中加入代码
public:
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
void OnInitADOConn();
4、在DataAdoDlg.cpp源文件最后加入void CMy1Dlg::OnInitADOConn()函数代码
void CMy1Dlg::OnInitADOConn()
{
try
{
//创建连接对象实例
m_pConnection.CreateInstance("ADODB.Connection");
//设置连接字符串(2003的在代码中有!)
CString strConnect="DRIVER={Microsoft Access Driver (*.mdb)};\
uid=;pwd=;DBQ=db1.mdb;";
//使用Open方法连接数据库
m_pConnection->Open((_bstr_t)strConnect,"","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
}
5、在DataAdoDlg.cpp源文件BOOL CDataAdoDlg::OnInitDialog()函数return TRUE;语名前面加入代码
m_list.SetExtendedStyle(LVS_EX_FLATSB
|LVS_EX_FULLROWSELECT
|LVS_EX_HEADERDRAGDROP
|LVS_EX_ONECLICKACTIVATE
|LVS_EX_GRIDLINES);
m_list.InsertColumn(0,"姓名",LVCFMT_LEFT,50,0);
m_list.InsertColumn(1,"性别",LVCFMT_LEFT,50,1);
OnInitADOConn();
//设置查询字符串
_bstr_t bstrSQL = "select * from 表1 ";
//创建记录集指针对象实例
m_pRecordset.CreateInstance(__uuidof(Recordset));
//打开记录集
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,
adLockOptimistic,adCmdText);
while(!m_pRecordset->adoEOF)
{
m_list.InsertItem(0,"");
m_list.SetItemText(0,0,(char*)(_bstr_t)m_pRecordset->GetCollect("姓名"));
m_list.SetItemText(0,1,(char*)(_bstr_t)m_pRecordset->GetCollect("性别"));
//将记录集指针移动到下一条记录
m_pRecordset->MoveNext();
}
//断开数据库连接
if(m_pRecordset!=NULL)
m_pRecordset->Close();
m_pConnection->Close();

运行结果如下
免费源码下载