操作ADO.NET Access数据库基本步骤总结

开发 后端
这里介绍了ADO.NET Access数据库访问技术使用的基本步骤及方法,步骤清晰,希望对大家有帮助。

学习ADO.NET时,你可能会遇到ADO.NET Access问题,这里将介绍ADO.NET Access问题的解决方法,在这里拿出来和大家分享一下。在示例程序中我们仍采用原库结构,数据库名Demo.mdb,库内表名DemoTable,表内字段名为Name(姓名)和Age(年龄)的两个字段,来构造示例程序操作所需的ADO.NET Access数据库,这也和上两篇文章的示例源码中的库结构相兼容。

下面让我们看看ADO数据库访问技术使用的基本步骤及方法:

首先,要用#import语句来引用支持ADO的组件类型库(*.tlb),其中类型库可以作为可执行程序(DLL、EXE等)的一部分被定位在其自身程序中的附属资源里,如:被定位在msado15.dll的附属资源中,只需要直接用#import引用它既可。可以直接在Stdafx.h文件中加入下面语句来实现:

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

     #T#其中路径名可以根据自己系统安装的ADO支持文件的路径来自行设定。当编译器遇到#import语句时,它会为引用组件类型库中的接口生成包装类,#import语句实际上相当于执行了API涵数LoadTypeLib()。#import语句会在工程可执行程序输出目录中产生两个文件,分别为*.tlh(类型库头文件)及*.tli(类型库实现文件),它们分别为每一个接口产生智能指针,并为各种接口方法、枚举类型,CLSID等进行声明,创建一系列包装方法。语句no_namespace说明ADO对象不使用命名空间,rename ("EOF", "adoEOF")说明将ADO中结束标志EOF改为adoEOF,以避免和其它库中命名相冲突。

其次,在程序初始过程中需要初始化组件,一般可以用CoInitialize(NULL);来实现,这种方法在结束时要关闭初始化的COM,可以用下面语句CoUnInitialize();来实现。在MFC中还可以采用另一种方法来实现初始化COM,这种方法只需要一条语句便可以自动为我们实现初始化COM和结束时关闭COM的操作,语句如下所示: AfxOleInit();

接着,就可以直接使用ADO的操作了。我们经常使用的只是前面用#import语句引用类型库时,生成的包装类.tlh中声明的智能指针中的三个,它们分别是_ConnectionPtr、_RecordsetPtr和_CommandPtr。下面分别对它们的使用方法进行介绍:

_ConnectionPtr智能指针,通常用于打开、关闭一个库连接或用它的Execute方法来执行一个不返回结果的命令语句(用法和_CommandPtr中的Execute方法类似)。
——打开一个库连接。先创建一个实例指针,再用Open打开一个库连接,它将返回一个IUnknown的自动化接口指针。代码如下所示:

  1. _ConnectionPtr m_pConnection;  
  2. // 初始化COM,创建ADO连接等操作  
  3. AfxOleInit();  
  4. m_pConnection.CreateInstance(__uuidof(Connection));  
  5.  
  6. // 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,  
  7. // 因为它有时会经常出现一些意想不到的错误。jingzhou xu  
  8. try                   
  9. {   
  10.  // 打开本地Access库Demo.mdb  
  11.  m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Demo.mdb","","",adModeUnknown);  
  12. }  
  13. catch(_com_error e)  
  14. {  
  15.  AfxMessageBox("数据库连接失败,确认数据库Demo.mdb是否在当前路径下!");  
  16.  return FALSE;  
  17. }      ——关闭一个库连接。如果连接状态有效,则用Close方法关闭它并赋于它空值。代码如下所示:   
  18.  
  19. if(m_pConnection->State)  
  20.         m_pConnection->Close();  
  21. m_pConnectionNULL;        
责任编辑:田树 来源: 博客园
相关推荐

2009-11-11 16:15:04

ADO.NET操纵数据

2009-12-18 14:27:24

ADO.NET对象

2009-12-24 10:37:03

ADO.NET访问数据

2009-03-19 09:58:04

ADO.NET数据库SQL操作

2011-10-09 13:38:14

数据库

2010-03-04 13:47:13

Python操作Acc

2009-12-22 09:59:06

ADO.NET数据库

2009-12-31 09:18:23

ADO.NET对象模型

2011-03-04 11:08:46

ADO.NET数据库

2009-11-03 14:46:47

ADO.NET数据库

2009-12-29 14:01:45

ADO.NET Sql

2009-12-30 09:53:31

ADO.NET数据库

2011-05-20 13:11:22

ADO.NET

2009-10-29 13:34:01

ADO.NET对象

2009-12-18 17:06:37

ADO.NET 数据库

2009-12-28 10:09:10

ADO.NET连接

2009-12-22 13:34:48

ADO.Net Tea

2009-12-24 15:11:47

ADO.NET数据库连

2009-12-21 16:36:08

ADO.Net数据库

2009-12-23 17:59:46

ADO.NET数据库
点赞
收藏

51CTO技术栈公众号