MFC连接Access2007数据库
// 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数据库的更多相关文章
- MFC连接postgre数据库
配置环境: include:libpq-fe.h文件 lib:libpq.lib文件 dll:libeay32.dll,libiconv-2.dll,libintl-8.dll,libpq.dll,s ...
- 如何使用MFC连接Access数据库
(1)新建一个Access数据库文件.将其命名为data.mdb,并创建好表.字段. (2)为系统添加数据源.打开“控制面板”—>“管理工具”—>“数据源”,选择“系统DSN”,点击右边的 ...
- MFC连接Mysql数据库执行查询和插入
配置环境: include:mysql.h文件 lib:libmysql.lib文件 dll::libmysql.dll文件 连接代码: MYSQL m_sqlCon; MYSQL_RES *m_re ...
- MFC连接MySQL数据库方法
MFC连接数据库的三种方法: 1.ODBC(开放式数据互联) 2.OLEDB与ADO 3.用mysql为C语言提供的接口
- MFC连接Access讲解(3合1) .
方法一: 1.首先,要用#import语句来引用支持ADO的组件类型库(*.tlb),其中类型库可以作为可执行程序(DLL.EXE等)的一部分被定位在其自身程序中的附属资源里,如:被定位在msado1 ...
- Access2007数据库下载地址与AccessHelper
链接:https://pan.baidu.com/s/1pLzOlTv0nqSbhzujHZht1w 提取码:1m9l AccessHelper: using System; using System ...
- VB如何连接访问数据库Access
VB如何连接访问数据库Access 听语音 | 浏览:10675 | 更新:2015-05-05 11:26 | 标签:连接 access 1 2 3 4 5 6 7 分步阅读 VB即Visual B ...
- VC++ MFC SQL ADO数据库访问技术使用的基本步骤及方法
1.首先,要用#import语句来引用支持ADO的组件类型库(*.tlb),其中类型库可以作为可执行程序 (DLL.EXE等)的一部分被定位在其自身程序中的附属资源里,如:被定位在msado15.dl ...
- 64位系统中连接Access数据库文件的一个问题
近日在windows 7 64位系统中编译以前写的程序,发现在连接Access数据库时总是出现异常,提示“Microsoft.Jet.OLEDB.4.0”未在本机注册,同样的代码在32位的xp系统中却 ...
- c# vs2010 连接access数据库
第一次在博客园写博文,由于文采不怎么好,即使是自己很熟悉的东西,写起来也会感觉到不知从何讲起,我想写的多了就好了. 这篇文章主要是介绍怎么用c# 语言 vs2010连接access数据库的,连接字符串 ...
随机推荐
- 在Linux驱动中使用regmap
背景 在学习SPI的时候,看到了某个rtc驱动中用到了regmap,在学习了对应的原理以后,也记录一下如何使用. 介绍 在Linu 3.1开始,Linux引入了regmap来统一管理内核的I2C, S ...
- python中dict和list的数据结构
要理解dict的有关内容需要你理解哈希表(map)的相关基础知识,这个其实是<算法与数据结构>里面的内容. 1.list和tuple其实是用链表顺序存储的,也就是前一个元素中存储了下一个元 ...
- debian11安装备忘
1. 网卡驱动 参考网址:如何安装Debian RTL8821CE驱动? 2. 分辨率 貌似还是有点问题,还要进一步研究一下 参考网址:虚拟机中debian11修改控制台(console)分辨率|li ...
- sheetjs导出表格时间错误问题
最近使用sheetjs,前端web去导出生成excel,xlsx表格.其中遇到一种问题,那就是时间出错了!比如多出8小时43秒,少了43秒.看到这种问题的时候,我也一脸懵逼.先上图! 不过在有些人电脑 ...
- 3 - 【RocketMQ 系列】CentOS 7.6 安装部署RocketMQ
四.安装管理面板 1.介质下载 下载到本地再上传,下载地址:https://github.com/apache/rocketmq-dashboard/archive/refs/tags/rocketm ...
- 如何做好一场NPS调研?
我们在工作中经常遇到的一个词,那就是"产品NPS调研".当部分项目缺少专业的用研人员时,设计师.产品经理则经常会接受上级的要求,投身于NPS调研工作. 笔者也曾在2022年的某天突 ...
- Three光源Target位置改变光照方向不变的问题及解决方法
0x00 楔子 在 Three.js 中,光源的目标(target)是一种用于指定光源方向的重要元素.在聚光灯中和定向光(DirectionalLight)中都有用到. 有时我们可能会遇到光源目标位置 ...
- [oeasy]python021_赛博宝剑铭文大赏_宝剑上的铭文_特殊符号和宝物
继续运行 回忆上次内容 上次修改了 程序 将 石中剑 变成了 红色 爱之大剑 添加图片注释,不超过 140 字(可选) 可以 让宝剑 具有 更多 铭文符号 和 颜色 吗? 铭文 亚 ...
- C# LINQ之IEqualityComparer<>接口应用
在C#语言中,对集合的条件查询.分组统计等操作使用LINQ非常方便,LINQ的语法格式与SQL非常相似和便捷,而LINQ扩展方法配合Lambda更为简洁,如All.Any.Count.Max等Enum ...
- Rust 中 *、&、mut、&mut、ref、ref mut 的用法和区别
Rust 中 *.&.mut.&mut.ref.ref mut 的用法和区别 在 Rust 中,*.ref.mut.& 和 ref mut 是用于处理引用.解引用和可变性的关键 ...