// TODO: 在此添加额外的初始化代码

//初始化ADO环境

if (!AfxOleInit())
{
AfxMessageBox(L"OLE初始化失败");
return FALSE;
}

  

//设置ListView例标题

m_list.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
m_list.InsertColumn(0, L"ID", LVCFMT_CENTER, 80);
m_list.InsertColumn(1, L"mName", LVCFMT_CENTER, 80);
m_list.InsertColumn(2, L"mSex", LVCFMT_CENTER, 80);
m_list.InsertColumn(3, L"mAge", LVCFMT_CENTER, 80);
m_list.InsertColumn(4, L"mTel", LVCFMT_CENTER, 120);

//连接数据库
m_pConnection.CreateInstance(__uuidof(Connection));

try
{
  //下面这些字符串弄了好久才弄对,主要是文件路径的问题吧,现在也没弄明白,放在工程Debug目录下就连接不上.

  //_bstr_t connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=myDate1.accdb;Persist Security Info=False";  //这句就出错,查了好久哦,都想放弃了.

  _bstr_t connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\AccessData2007\\myDate1.accdb;Persist Security Info=False";

  _bstr_t dataName = "Admin";
  _bstr_t dataPass = "";
  
  HRESULT hr=m_pConnection->Open(connStr,dataName,dataPass,adModeUnknown);
  //MessageBox(L"数据连接成功");
}
catch (_com_error e)
{
  AfxMessageBox( e.ErrorMessage());
  return FALSE;
}

//连接记录集
m_pRecordset.CreateInstance(__uuidof(Recordset));
try
{
  _variant_t sql = "select * from myTable";

  HRESULT hret = m_pRecordset->Open(
            sql,
            m_pConnection.GetInterfacePtr(),
            adOpenDynamic,
            adLockOptimistic,
            adCmdText
            );
  //MessageBox(L"连接成功");

}
catch (_com_error* e)
{
  MessageBox(e->ErrorMessage());
  return FALSE;
}

//加载数据到ListView控件中
_variant_t var;
CString strTmp;
for (int i=0;!m_pRecordset->adoEOF;i++)
{
  var = m_pRecordset->GetCollect(_T("ID"));
  strTmp = (LPCTSTR)_bstr_t(var);
  m_list.InsertItem(i, strTmp);

  var = m_pRecordset->GetCollect(_T("mName"));
  strTmp = (LPCTSTR)_bstr_t(var);
  m_list.SetItemText(i, 1, strTmp);

  var = m_pRecordset->GetCollect(_T("mSex"));
  strTmp = (LPCTSTR)_bstr_t(var);
  m_list.SetItemText(i, 2, strTmp);

  var = m_pRecordset->GetCollect(_T("mAge"));
  strTmp = (LPCTSTR)_bstr_t(var);
  m_list.SetItemText(i, 3, strTmp);

  var = m_pRecordset->GetCollect(_T("mTel"));
  strTmp = (LPCTSTR)_bstr_t(var);
  m_list.SetItemText(i, 4, strTmp);

  m_pRecordset->MoveNext();
}
//关闭记录集和数据库连接

m_pRecordset->Close();
m_pRecordset.Release();
m_pRecordset = NULL;
if (m_pConnection->State)
{
  m_pConnection->Close();
}
m_pConnection = NULL;

//关闭记录集和数据库连接

	m_pRecordset->Close();
m_pRecordset.Release();
m_pRecordset = NULL;
if (m_pConnection->State)
{
m_pConnection->Close();
}
m_pConnection = NULL;

  

MFC连接Access2007数据库的更多相关文章

  1. MFC连接postgre数据库

    配置环境: include:libpq-fe.h文件 lib:libpq.lib文件 dll:libeay32.dll,libiconv-2.dll,libintl-8.dll,libpq.dll,s ...

  2. 如何使用MFC连接Access数据库

    (1)新建一个Access数据库文件.将其命名为data.mdb,并创建好表.字段. (2)为系统添加数据源.打开“控制面板”—>“管理工具”—>“数据源”,选择“系统DSN”,点击右边的 ...

  3. MFC连接Mysql数据库执行查询和插入

    配置环境: include:mysql.h文件 lib:libmysql.lib文件 dll::libmysql.dll文件 连接代码: MYSQL m_sqlCon; MYSQL_RES *m_re ...

  4. MFC连接MySQL数据库方法

    MFC连接数据库的三种方法: 1.ODBC(开放式数据互联) 2.OLEDB与ADO 3.用mysql为C语言提供的接口

  5. MFC连接Access讲解(3合1) .

    方法一: 1.首先,要用#import语句来引用支持ADO的组件类型库(*.tlb),其中类型库可以作为可执行程序(DLL.EXE等)的一部分被定位在其自身程序中的附属资源里,如:被定位在msado1 ...

  6. Access2007数据库下载地址与AccessHelper

    链接:https://pan.baidu.com/s/1pLzOlTv0nqSbhzujHZht1w 提取码:1m9l AccessHelper: using System; using System ...

  7. VB如何连接访问数据库Access

    VB如何连接访问数据库Access 听语音 | 浏览:10675 | 更新:2015-05-05 11:26 | 标签:连接 access 1 2 3 4 5 6 7 分步阅读 VB即Visual B ...

  8. VC++ MFC SQL ADO数据库访问技术使用的基本步骤及方法

    1.首先,要用#import语句来引用支持ADO的组件类型库(*.tlb),其中类型库可以作为可执行程序 (DLL.EXE等)的一部分被定位在其自身程序中的附属资源里,如:被定位在msado15.dl ...

  9. 64位系统中连接Access数据库文件的一个问题

    近日在windows 7 64位系统中编译以前写的程序,发现在连接Access数据库时总是出现异常,提示“Microsoft.Jet.OLEDB.4.0”未在本机注册,同样的代码在32位的xp系统中却 ...

  10. c# vs2010 连接access数据库

    第一次在博客园写博文,由于文采不怎么好,即使是自己很熟悉的东西,写起来也会感觉到不知从何讲起,我想写的多了就好了. 这篇文章主要是介绍怎么用c# 语言 vs2010连接access数据库的,连接字符串 ...

随机推荐

  1. Profinet IO从站数据 转EtherCAT项目案例

    目录 1 案例说明 1 2 VFBOX网关工作原理 1 3 准备工作 2 4 使用PRONETA软件获取PROFINET IO从站的配置信息 2 5 设置网关采集PROFINETIO从站设备数据 5 ...

  2. PHP接入苹果支付

    Ios苹果支付流程: 客户端先从苹果获取内购Id. 客户端将内购id,金额.用户id等传给服务端获取一个自己服务端生成的订单号. 客户端向苹果发起支付. 支付成功后,客户端从本地拿支付凭证.将支付凭证 ...

  3. 嵌入式必看!全志T113-i+玄铁HiFi4核心板硬件说明资料分享

    目 录 1 硬件资源 2 引脚说明(篇幅问题,暂不提供详细内容) 3 电气特性 4 机械尺寸 5 底板设计注意事项 硬件资源 SOM-TLT113核心板板载CPU.ROM.RAM.晶振.电源.LED等 ...

  4. Centos7安装Redis详细步骤(配置开机自启)

    Redis 获取redis安装包使用tar命令解压. $ tar -zxzf redis-6.2.6.tar.gz 编译和安装redis 进入redis目录,执行make编译. $ cd redis- ...

  5. C# 日期帮助类

    using System; using System.Data; namespace Erp.Ship.Tool { [Serializable] public enum DateInterval { ...

  6. 解决阿里云redis监听6379,配置规则也将6379端口开放,但是外网仍无法连接6379的问题

    首先确保阿里云配置规则和服务器防火墙已开发6379端口 阿里云linux安装完成redis,并且已经运行,检测6379端口,显示redis-server正在监听,如图 修改redis.conf配置 将 ...

  7. tp5生命周期

    https://www.kancloud.cn/manual/thinkphp5/118011 1.入口文件 用户发起的请求都会经过应用的入口文件,通常是 public/index.php文件.当然, ...

  8. [oeasy]python0100_wintel联盟_intel_微软_microsoft_msDOS_基尔代尔

    wintel联盟 回忆上次内容 上次 了解了IBM的 背水一战 IBM 已经不在乎 软硬一体全自主的设计 了 而采用了 开放的架构 任何 硬件厂商和软件厂商 都可以来合作 以丧失 自主控制力的方式 获 ...

  9. oeasy教您玩转 linux 010213 中文 fcitx

     我们来回顾一下 上一部分我们都讲了什么? 管道 ls | cowsay 管道的符号是| 管道的作用是连接 原来应该输出到屏幕的内容 通过管道流到了另一个命令做为参数 这次是否可以让cow说出一些中文 ...

  10. SUM-ACM——VJ天梯训练赛

    这次比赛我暴露了很多问题,一些模拟还有贪心思路错误. 补题如下: E - E 题解:一道模拟题,我的问题在于不知道怎么替换下一个,就从0开始遍历数组然后数组的值--,如果为零就continue下一个, ...