使用ADOX,需要引入ADOX的动态链接库msadox.dll,首先在stdafx.h中加入如下语句:

#import "c:/program files/common files/system/ado/msado15.dll" no_namespace rename("EOF","adoEOF")

然后在程序初始化的时候需要初始化COM。在App::InitInstance()函数中加入


    if(!AfxOleInit())
    {
       AfxMessageBox("OLE初始化出错!");
       return FALSE;
    }

然后进行连接数据库

// 定义ADO连接、命令、记录集变量指针
_ConnectionPtr m_pConnection;
_variant_t RecordsAffected;
_RecordsetPtr m_pRecordset;

  try
{
  m_pConnection.CreateInstance(__uuidof(Connection));
//连接SQL SERVER
  //m_pConnection->Open("Driver=SQL Server;Database=test;Server=127.0.0.1;UID=sa;PWD=123;","","",adModeUnknown);
  //连接ACCESS2003
  m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/UserInfo.mdb; Jet OLEDB:DataBase password=123","","",adModeUnknown);

}
catch(_com_error e)
{
  CString errormessage;
  errormessage.Format("连接数据库失败!/r错误信息:%s",e.ErrorMessage());
  AfxMessageBox(errormessage);
  ExitProcess(0);
}

连接成功之后向数据库执行查询语句select ALL* from userinfo,在按钮里添加如下代码。

void CUserDlg::OnButtonAll()
{
// TODO: Add your control notification handler code here
m_list.DeleteAllItems();

try
{
  m_pRecordset.CreateInstance("ADODB.Recordset"); //为Recordset对象创建实例
  _bstr_t strCmd = "select ALL* from userinfo";   //SQL语句
  m_pRecordset=m_pConnection->Execute(strCmd,&RecordsAffected,adCmdText);  //执行
 
}
catch(_com_error &e)
{
  AfxMessageBox(e.Description());
}
  //SQL语句执行成功之后,以下的代码是获取记录返回的数据
_variant_t userid, username, u_groupid, u_tim, u_timed_tim, u_qq,
  u_email,u_realname,u_address,u_postcode,u_phone;

try
{
  while(!m_pRecordset->adoEOF)
  {
   //获取返回的记录
   userid=m_pRecordset->GetCollect("userid");
   username=m_pRecordset->GetCollect("username");
   u_groupid=m_pRecordset->GetCollect("u_groupid");
   u_tim=m_pRecordset->GetCollect("u_tim");
   u_timed_tim=m_pRecordset->GetCollect("u_timed_tim");
   u_qq = m_pRecordset->GetCollect("u_qq");
   u_email = m_pRecordset->GetCollect("u_email");
   u_realname = m_pRecordset->GetCollect("u_realname");
   u_address = m_pRecordset->GetCollect("u_address");
   u_postcode = m_pRecordset->GetCollect("u_postcode");
   u_phone = m_pRecordset->GetCollect("u_phone");

//对返回的用户信息记录插入m_list 
   if(userid.vt!=VT_NULL)
   {
    m_list.InsertItem(0,(LPCTSTR)(_bstr_t)userid);
   }
   if (username.vt!=VT_NULL)
   {
    m_list.SetItemText(0,1,(LPCTSTR)(_bstr_t)username);
   }
   if (u_groupid.vt!=VT_NULL)
   {
    m_list.SetItemText(0,2,(LPCTSTR)(_bstr_t)u_groupid);
   }
   if (u_timed_tim.vt!=VT_NULL)
   {
    m_list.SetItemText(0,3,(LPCTSTR)(_bstr_t)u_tim);
   }
   if (u_timed_tim.vt!=VT_NULL)
   {
    m_list.SetItemText(0,4,(LPCTSTR)(_bstr_t)u_timed_tim);
   }
   if (u_qq.vt!=VT_NULL)
   {
     m_list.SetItemText(0,5,(LPCTSTR)(_bstr_t)u_qq);
   }
   if (u_email.vt!=VT_NULL)
   {
     m_list.SetItemText(0,6,(LPCTSTR)(_bstr_t)u_email);
   }
   if (u_realname.vt!=VT_NULL)
   {
     m_list.SetItemText(0,7,(LPCTSTR)(_bstr_t)u_realname);
   }
   if (u_address.vt!=VT_NULL)
   {
     m_list.SetItemText(0,8,(LPCTSTR)(_bstr_t)u_address);
   }
   if (u_postcode.vt!=VT_NULL)
   {
     m_list.SetItemText(0,9,(LPCTSTR)(_bstr_t)u_postcode);
   }
   if (u_phone.vt!=VT_NULL)
   {
     m_list.SetItemText(0,10,(LPCTSTR)(_bstr_t)u_phone);
   }

m_pRecordset->MoveNext();
  }

}
catch(_com_error &e)
{
  AfxMessageBox(e.Description());
}

m_pRecordset->Close();   //关闭记录对象
m_pRecordset=NULL;

}

ADO连接ACCESS数据库相关推荐

  1. ADO连接Access数据库,Access版本问题

    最近做项目需要用到Access数据库,采用ADO连接Access数据库,需要注意的地方如下: 1.程序初始化的时候,需要初始化OLE库 // 初始化 OLE 库  if (!AfxOleInit()) ...

  2. VS2013下MFC通过ADO连接Access数据库

    (VS2013+Access2003) 1. 新建一个基于对话框的MFC项目:ADO_Access0306 在stdafx.h头文件末尾添加(网上有说在某个#include后面的添加的,也有说在合适位 ...

  3. VC6.0 通过ado连接access数据库

    小实例 http://download.csdn.net/detail/cxq_1993/8985731 ADO连接数据库 1.COM库的初始化 我们可以使用AfxOleInit()来初始化COM库, ...

  4. VS2019通过ADO连接access数据库(详细)

    1.建立数据库,在控制面板->管理工具->数据源中添加数据源. 在系统DSN中点击添加 选择  Microsoft Access Driver(*.mdb) 自行对数据源进行命名,并点击选 ...

  5. mfc连接oracle12c,MFC ADO连接Oracle12c数据库 类库文件

    Stdafx.h Stdafx.h libado.h libado.h libado.cpp libado.cpp 参考网址如下:http://www.cnblogs.com/livewithnore ...

  6. MFC 使用 ADO技术连接Access数据库

    学了很久的MFC,于是想着使用MFC的ADO技术连接Access数据库. 记录一下,以备后面复习. 1.首先需要了解MDB数据库文件,本次示例代码连接的是MDB数据库文件.*.MDB文件是(Micro ...

  7. asp.net中ADO.NET连接SQL数据库代码和连接Access数据库代码

    连接SQL数据库方法: 一.建立连接          1.(使用System.Data.SqlClient) <1>  string strcon;         //声明连接字串   ...

  8. ADO.NET连接Access数据库实例

    连接Access程序代码片段: using System.Data; using System.Data.OleDb; string strConnection="Provider=Micr ...

  9. 使用VC连接Access数据库的两种方法

    以前的时候用VC写了两种连接Access数据库的方法,为了方便以后查找把这两种方法做一下简单的介绍.Windows平台的数据接口标准有ODBC.OLE DB.ADO和Borland的BDE接口,ODB ...

最新文章

  1. c语言switch设计计算器,求助。。关于用switch编写简易计算器
  2. UNIX再学习 -- 函数 system
  3. discuz修改用户uid_haproxy实现discuz论坛的动静分离和负载均衡
  4. 数据库中的二级索引_普通索引_辅助索引
  5. Oracle数据库ORA-00942: 表或视图不存在的问题
  6. staticmethod自己定制
  7. node.js小工具--修改Xcode 'Create by'作者名称
  8. C语言 —— 回调函数
  9. c语言谱曲软件,基于C语言的音乐谱曲技巧与应用研究
  10. 在网页中加入“加载中提示”的方法
  11. CPC认证的常规测试项目
  12. 【linux】详解TOP命令
  13. web全栈工程师(前端进阶)学习线路图
  14. 虚拟机windows10 屏幕大小不能自适应
  15. 【软考-软件设计师精华知识点笔记】第八章 算法分析设计
  16. csv是什么文件(ofd是什么文件)
  17. HEVC中的Merge Mode——x265代码getInterMergeCandidates()函数解析
  18. Python滚动条如果滚不动
  19. seo网络优化是什么?
  20. Vue入门到上手(10)—— VueJs 填坑日记之在项目中使用Amaze UI

热门文章

  1. Python requests模块session day6
  2. Android数据存储之SharePreference和内部存储
  3. 场景/故事/story——寻物者发布消息场景、寻失主发布消息场景、消息展示场景、登录网站场景...
  4. Asp.net发送邮件的两种方法小结
  5. JBoss 4.x 5.x 6.xJBossMQ JMS 反序列化漏洞
  6. 【数据结构与算法】之深入解析“不同路径II”的求解思路与算法示例
  7. 【数据结构与算法】之深入解析“正则表达式匹配”的求解思路与算法示例
  8. 编程生涯 21 载,那些我踩过的坑
  9. 教小学妹学算法:搜索算法解决迷宫问题
  10. 全国大学生电子设计大赛 赛前准备