ASP.NET之如何用代码读取数据1

这篇博客介绍了数据库访问的相关技术,包括ODBC的作用,它是如何作为接口处理不同数据库连接的。接着讲解了OLEDB,它通过数据提供者对不同数据库进行相同操作。此外,文章还解释了API、IDE、ODBC数据源、OLEDB、ActiveX、ADO以及ADO.NET的概念和它们在开发中的角色。
摘要由CSDN通过智能技术生成

——————————————————————————————————————————————————————————————


————————————————————————————————————————————————

1.现实中有access数据库,SQL数据库,ORACLE各种数据库等,连接它们需要不同接口,ODBC就是干干这活,它让高层不用理会是哪种数据库,它自己会处理它底下的数据库。

(开放数据库互连(Open Database Connectivity,ODBC)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。)

2.使用OLEDB查询数据,要么通过ODBC,对各个不同数据库进行相同操作;要么通过OLEDB的自己data.provider,对各个不同数据库进行相同操作。
3.(额外问题)API是什么?

第一种意思可以理解为我们的帮助文档,其实帮助文档就是在讲有些什么函数、方法,如何调用一些底层函数、方法

第二种意思就是“应用程序接口”(Application Programing Interface),通俗讲,就是你现在使用“vc6.0开发工具”进行开发,比如写一个程序,你要计算10的5次方,你肯定不会写:10*10*10*10*10,那你就会想到VC6.0肯定提供了这种函数功能,于是你去帮助文档里查,发现有个Math.pow方法,这个Math.pow就是一个API。换句话说,在你的程序里,除了你些的方法,所有其他方法都是系统或他人提供给你的API。

API就是“程序接口”,有很多不同层次的程序,底层、中层、高层,而不同层次就通过API这种接口互相连在一起,通信,大家都不需理会、知道各自是怎么运行的,自己干好自己的事情就行了。

帮助文档上那些供你调用的函数就是API,可以理解为公开的方法,public function().

API是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

4.(额外问题)IDE是什么?

就是开放工具!!!visual studio 2012就是一个IDE!!!

IDE就是Integerated Development Environment,集成开发环境,是一种集成了代码编辑器、编译器、调试器等与开发有关的实用工具的软件。由于大部分常用工具都集成在一起了,所以使用IDE来进行开发工作会使工作效率达到最高。现在已经很少有人不用IDE来进行开发工作了。

大家说的IDE就是集成开发环境,比如:visual studio 2012、Eclipseintellij idea jbuilder等。通俗一点说就是开发人员开发用的开发环境(开发工具)。为什么说是集成开发环境,因为除了可以让你写代码外还集成其他很多工具,比如版本控制工具,cvs,svn,git,还有代码检查工具,数据库管理工具,servlet容器等,这么多工具集成到一个开发平台上,因此称它们是集成开发环境。


5.(额外问题)ODBC是什么?

说白了,ODBC是什么,现实中有各种各类的数据库,ACCESS,SQL,ORACLE,MySQL等等,操作各种数据库需要不同的方法,函数等,而ODBC的出现,就让程序员不用管什么数据库,利用ODBC作为中介,不用管底下是什么数据库,对数据库进行的增删改都可以一样的代码!!!

开放数据库互连(Open Database Connectivity,ODBC)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。
开放数据库互连(ODBC)是MICROSOFT提出的数据库访问接口标准。开放数据库互连定义了访问数据库的API一个规范,这些API独立于不同厂商的DBMS,也独立于具体的编程语言(但是MICROSOFT的ODBC文档是用C语言描述的,许多实际的ODBC驱动程序也是用C语言写的。)

ODBC是一个中间协议,它可以连接各类数据库,包括EXCEL和文本。它提供统一的使用方法给程序,程序如果使用ODBC操作实际数据库,不管后台数据库是DB2还是MSSQL,或者升级换了,程序几乎都可以以不变应万变。 如果你的程序希望通过ODBC操作EXCEL,你在控制面板里面新建数据源,选择指定相应的EXCEL文件,程序就可以连接ODBC进行工作,当以后EXCEL装不下数据的时候,你可以把数据导入到ACCESS,修改控制面板里面的数据源设置,程序可以无需修改直接工作。

6.(额外问题)ODBC数据源是什么?

ODBC数据源,就是“ODBC的数据源”。数据源,就是我们说的数据库啊,就是Access、MSSQL、Oracle、MYSQL这些,



7.(额外问题)OLEDB是什么?

说白了,就是分层的思想,ODBC操作那些“ACCESS、MSSQL等数据库”,OLEDB就操作ODBC。

OLE DB 标准的具体实现是一组C++ API 函数,就像ODBC 标准中的ODBC API 一样,不同的是,OLE DB 的API 是符合COM 标准、基于对象的(ODBC API 则是简单的C API)。使用OLE DB API,可以编写能够访问符合OLE DB 标准的任何数据源的应用程序,也可以编写针对某种特定数据存储的查询处理程序(Query Processor)和游标引擎(Cursor Engine),因此OLE DB 标准实际上是规定了数据使用者和提供者之间的一种应用层的协议(Application-Level Protocol)。

7.(额外问题)ActiveX是什么?

微软的ActiveX技术是什么?
    在网上看了半天,终于找到某位高手精辟的概括:ActiveX其实就是想实现几个目标的一种技术:
1、二进制级别的软件复用2、与开发语言无关3、符合面向对象标准4、可以实现进程间通信

8.(文爱问题)ADO是什么?

说白了,ADO操作OLEDB,OLEDB操作ODBC,ODBC操作“大家说的数据库(数据源)”,ADO是一种对象模型,而且微软为了实现与语言无关,ADO出现了。

OLE DB 标准的API 是C++ API,只能供C++ 语言调用(这也是OLE DB 没有改名为ActiveX DB 的原因,ActiveX 是与语言无关的组件技术)。为了使得流行的各种编程语言都可以编写符合OLE DB 标准的应用程序,微软在OLE DB API 之上,提供了一种面 向对象、与语言无关的(Language-Neutral)应用编程接口,这就是ActiveX Data Objects,简称ADO。
与DAO、RDO 等类似,ADO 实际上是一种对象模型,不过这个对象模型相对简单,在这个对象模型中,Connection 类似于RDO 的rdoConnection 或者DAO 的Database,Command 类似于RDO 的rdoPreparedStatement 或者DAO 的QueryDef。
值得注意的是:与DAO 等模型的层次结构不同,ADO 基本上是一种平板结构:Command 和Recordset 与Connect 之间并没有上下层次关系,这种设计主要是为了适应Internet 应用开发的需要。因为在Internet 上,像在局域网内那样维护一个永久性的连接、然后在连接的基础上执行查询,基本上是不可能的。

1:odbc开放的通用国际标准,几乎所有的数据库都支持该规范。为了符合ODBC规范,其存取性能不如native驱动好,并且也会牺牲一些功能。编程工具一般是C++,操纵比较复杂;   
  2:ole   db,COM型api,odbc为普通dll封装,据称性能会有改善,不是所有的数据库都提供了oledb驱动的。存取一般有两种方式:oledb   for   server或oledb   for   odbc+odbc   driver,后者底层是通过odbc来存取数据的。编程工具一般是c++,同odbc   API一样,使用比较复杂;   
  3:ado是对oledb数据源存取API的封装,如同在vc中CDatabase、CRecordSet对odbc   api的封装一样。使用比较简单,也适合如VB、vbscript等来使用。   
  一句话:底层API效率好,不易使用;封装越高,则越容易使用。   

8.(额外问题)ADO、ADO.NET是什么?

1.ADO与ADO.NET简介
ADO与ADO.NET既有相似也有区别,他们都能够编写对数据库服务器中的数据进行访问和操作的应用程序,并且易于使用、高速度、低内存支出和占用磁盘空间较少,支持用于建立基于客户端/服务器和 Web 的应用程序的主要功能。但是ADO使用OLE DB接口并基于微软的COM技术,而ADO.NET拥有自己的ADO.NET接口并且基于微软的.NET体系架构。众所周知.NET体系不同于COM体系,ADO.NET接口也就完全不同于ADO和OLE DB接口,这也就是说ADO.NET和ADO是两种数据访问方式。
  
2. 数据访问方式的历史
  下面简单的回顾一下微软的数据访问方式所走过的几个阶段。
  
  ODBC – (Open Database Connectivity)是第一个使用SQL访问不同关系数据库的数据访问技术。使用ODBC应用程序能够通过单一的命令操纵不同的数据库,而开发人员需要做的仅仅只是针对不同的应用加入相应的ODBC驱动。
  
  DAO - (Data Access Objects)不像ODBC那样是面向C/C++程序员的,它是微软提供给Visual Basic开发人员的一种简单的数据访问方法,用于操纵Access数据库。
  
  RDO – 在使用DAO访问不同的关系型数据库的时候,Jet引擎不得不在DAO和ODBC之间进行命令的转化,导致了性能的下降,而RDO(Remote Data Objects)的出现就顺理成章了。
  
  OLE DB – 随着越来越多的数据以非关系型格式存储,需要一种新的架构来提供这种应用和数据源之间的无缝连接,基于COM(Component Object Model)的OLE DB应运而生了。
  
  ADO – 基于OLE DB之上的ADO更简单、更高级、更适合Visual Basic程序员,同时消除了OLE DB的多种弊端,取而代之是微软技术发展的趋势。
3. ADO与ADO.NET对照
  在开始设计.NET体系架构时,微软就决定重新设计数据访问模型,以便能够完全的基于XML和离线计算模型。两者的区别主要有:
  
  ADO以Recordset存储,而ADO.NET则以DataSet表示。Recordset看起来更像单表,如果让Recordset以多表的方式表示就必须在SQL中进行多表连接。反之,DataSet可以是多个表的集合。ADO 的运作是一种在线方式,这意味着不论是浏览或更新数据都必须是实时的。ADO.NET则使用离线方式,在访问数据的时候ADO.NET会利用XML制作数据的一份幅本,ADO.NET的数据库连接也只有在这段时间需要在线。
  
  由于ADO使用COM技术,这就要求所使用的数据类型必须符合COM规范,而ADO.NET基于XML格式,数据类型更为丰富并且不需要再做COM编排导致的数据类型转换,从而提高了整体性能。
  
4. 小结
  ADO.NET为.NET构架提供了优化的数据访问模型,和基于COM的ADO是完全两样的数据访问方式。

--------------------------------------------------------------------------------------------------
1、一些ADO中常见的类型比如RecordSet在ADO.NET中已经没有了,而且在ADO.NET中也新增了许多在传统ADO中找不到的直接对应的新类型(如数据适配器);

2、传统的ADO主要针对紧密连接的客户端/服务器系统,而ADO.NET考虑到了断开式连接应用并且引进了DataSet,它代表任意数量的关联表每个表都包含了行和列的集合的本地副本,使用DataSet的话,在断开数据库连接的情况下调用程序集处理和更细它的内容,然后使用关联的数据适配器将修改后的数据提交回数据库

3、传统的ADO和ADO.NET的一个显著区别是后者全面支持XML数据呈现。其实从数据库中获得的数据默认被序列化为XML,假设XMl通过标准的HTTP在层之间传输,ADO.NET就能突破防火墙的限制。

4、两者之间最根本的区别在于ADO.NET是托管代码库

9.(额外问题)COM是什么?

COM是开发 软件组件的一种方法。组件实际上是一些小的二进制可执行程序,它们可以给应用程序,操作系统以及其他组件提供服务。开发自定义的COM组件就如同开发动态的, 面向对象的API。多个COM对象可以连接起来形成应用程序或组件系统。并且组件可以在运行时刻,在不被重新链接或编译应用程序的情况下被卸下或替换掉。Microsoft的许多技术,如ActiveX, DirectX以及OLE等都是基于COM而建立起来的。并且Microsoft的开发人员也大量使用COM组件来定制他们的应用程序及操作系统。

ActiveX是Microsoft对于一系列策略性 面向对象程序技术和工具的称呼,其中主要的技术是 组件对象模型(COM)。

10.(额外问题)COM组件是什么?
COM组件,就是符合COM规范的小组件,很多小组件连接起来,构成某个应用程序,COM组件是二进制可执行文件,以二进制的形式发布。COM不是类、不是API函数、不是Dll,它只是利用DLL来给组件提供动态链接能力。






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值