MFC和ACCESS数据库的连接(C_Answers团队开发学生信息管理系统所用)

原创 2012年03月28日 15:30:21

1.通常在应用类(APP类)中进行数据库的连接。(不在dialog类中,,因为要在出现对话框前已经建立好数据库的连接)


第一步:数据库操作准备

1)导入ADO动态链接库。。在stdafx.h中。

在工程的stdafx.h中加入如下语句:

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

这一句有何作用呢?其最终作用同我们熟悉的#include类似,编译的时候系统会我们声称msado15.tlh和msado15.tl两个C++头文件来定义ADO库。即加载ADO动态连接库。


其中no_namespace表明不使用命名空间,rename("EOF","adoEOF")表明把ADO中用到的EOF改为adoEOF,防止命名冲突。

注意:改代码需要在一行中完成,如果写成两行或者多行,末行要加上"\"符号,表示把这几行看成一行。


2)初始化OLE/COM环境,在应用类(app)的lnitlnstance成员函数中。

方法:在应用类的lnitlnstance成员函数中,添加AfxOlenit函数(在退出应用时,该函数也将负责COM资源的释放)

BOOL CMy13App::InitInstance()
{
    AfxEnableControlContainer();//添加的初始化OLE/COM环境代码

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


第二步:连接数据库

1)先在APP头文件中声明一个connection指针。

方法为:双击APP类----即进入头文件,,在头文件中声明成员变量。或者右键鼠标---添加成员变量。。


如下

class CMy13App : public CWinApp
{
public:
    _ConnectionPtr m_pcon2;
    CMy13App();
_ConnectionPtr m_pcon;//声明一个连接指针


2)在lnitlnstance中创建Connection对象(实例化)

打开lnitlnstance函数

BOOL CMy13App::InitInstance()
{
    AfxEnableControlContainer();//第一步时自己写的用于初始化OLE/COM的代码
    m_pcon.CreateInstance(_uuidof(Connection ));//创建Connection对象---自己写的

3)设置连接字符串,,以便制定需要的连接

BOOL CMy13App::InitInstance()
{
    AfxEnableControlContainer();//初始化OLE/COM
    m_pcon.CreateInstance(_uuidof(Connection ));                     //创建Connection对象
    try//负责抛出
    {
        CString SQL="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=SIMS.accdb;Jet OLEDB:Database Password=606";;//设置连接字符串
        m_pcon->Open((_bstr_t)SQL,"","",adModeUnknown)          //使用m_pcon的open方法实现对数据库的连接。
    }
    catch (_com_error e)//捕获异常
    {
        AfxMessageBox("数据库连接失败!");
        return FALSE;
    }


在ADO操作中建议使用try....Catch(_com_error e)来捕捉错误信息。

相关文章推荐

MFC利用ADO操作Access数据库

一、 导入ADO动态连接库 在工程的stdafx.h中加入以下语句:        #import "c:\program files\commonfiles\system\ado\msado15...

向Access数据库插入数据时遇见的小小问题

记得前一次用Access数据库已是多年前的事了,那时还在学校混日子。 这次,由于一个实验性的小项目,再次接触Access数据库(Access2007)。在使用Access数据库的过程中,遇见一个小小...
  • tiana0
  • tiana0
  • 2013年08月18日 11:39
  • 2554

学生信息管理系统——数据库引擎的连接(SQL Server验证)

数据库引擎的连接,用SQL Server进行身份验证!

学生信息管理系统(6)——应用程序与数据库连接

上一篇文章都是巨人们对ODBC 、 OLEDB、ADO、ADODB  的认识,总感觉自己不写点东西,不总结一下知识不牢固。记得梦甜同志博客(反思——如何学习)中提到,粘在博客上的文字是你的吗? ...

C#学生信息管理系统_Access数据库SY

  • 2014年09月14日 21:50
  • 1.52MB
  • 下载

学生信息管理系统(C实现)

头文件 1 #ifndef __SIMS__ 2 #define __SIMS__ 3 #include 4 #include 5 #includestring.h> 6 ...

LINUX下的C学生信息管理系统

第一次写,难免会有些紧张 /*  软件1304 王京博     版本号 V0.9     时间 2014.6.24*/ #include #include #include #inc...

linux下c/c++实例之十五简单的学生信息管理系统

一、简介        大学期间用vc++开发的简单的学生信息管理系统,主要有添加学生信息、删除学生信息、修改学生信息、查询学生信息、显示学生信息、综合统计(各课程平均成绩和合格率)、总分排序和退出系...

学生信息管理系统之数据库语句解析

学生信息管理系统的数据库创建的语句基本只有三种:select选择语句、create创建语句、drop删除语句。 下面这些是对学生信息管理系统的数据库中的一些语句的理解: 分析语句一: if ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MFC和ACCESS数据库的连接(C_Answers团队开发学生信息管理系统所用)
举报原因:
原因补充:

(最多只允许输入30个字)