MFC用ADO连接ACESS数据库实例(免费源码下载)

本文介绍了如何在MFC应用程序中创建DataAdo项目,通过ADO连接到ACCESS数据库,读取数据并显示在ListControl中。步骤包括添加ADO库引用,初始化COM,设置连接字符串,打开记录集以及填充列表控件。
摘要由CSDN通过智能技术生成

在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();
![在这里插入图片描述](https://img-blog.csdnimg.cn/da8713fe9f6749269b8d2d7eb88df4da.png#pic_center)

运行结果如下
在这里插入图片描述
免费源码下载

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兵哥工控

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值