微软数据访问方式历史阶段

①ODBC(Open Database Connectivity)是第一个使用SQL访问不同关系数据库的访问技术。使用ODBC应用程序能够通过单一的命令操作不同的数据库,而开发人员需要做的仅仅只是针对不同的应用加入相应的ODBC驱动。(只面向C/C++)

②DAO(Data Access Objects)不像ODBC那样是面向C/C++程序员的,它是微软提供给Visual Basic开发人员的一种简单的数据访问方法,用于操纵Access数据库。

③RDO(Remote Data Objects):在使用DAO访问不同的关系数据库的时候,Jet引擎不得不在DAO和ODBC之间进行命令的转化,导致了性能的下降,而RDO的出现就顺理成章了。

④OLE DB(Object Link and embed):随着越来越多的数据以非关系型格式存储,需要一种新的架构来提供这种应用和数据源之间的无缝连接,基于COM(Component Object Model)的OLE DB应运而生了。

⑤ADO:基于OLE DB之上的ADO更简单、更高级、更适合C#程序员,同时消除了OLE DB的多种弊端,取而代之是微软技术发展的趋势。

ADO.NET简介

1.ADO.NET的名称起源于ADO(ActiveX Data Objects),是一个COM组件库,也就是一个通用框架类库,该类库将跨越所有存在的WindowsAPI函数。简单来说,它是在.NET编程环境中使用的数据访问接口。

2.ADO.NET是与C#和.NET Framework一起使用的类集的名称,用于以关系型的、面向表的格式访问数据。

3.AOD.NET被集成到.NET Framework中,可用于任何.NET语言,尤其是C#。

ADO.NET对象模型构成

ADO.NET技术中的五大对象

1.Connection                 ---连接

2.Command                  ---命令

3.DataReader                ---数据阅读器

4.DataAdapter                ---数据适配器

5.DataSet                       ---数据集

ADO.NET有两部分构成:

(1)数据提供程序(Provider):它能和数据库保持链接并且执行SQL命令,操纵数据集。

(2)数据集(DataSet):能与数据库在断开链接的情况下进行数据库操作。

1.数据库比作水源,存储了大量的水(数据);

2.Connection好比伸入水中的进水龙头,保持与水的接触,只有它与水进行“连接”,其他对象才可以抽到水

3.Command则像抽水机,为抽水提供动力和执行方法,通过“水龙头”,然后把水返给上面的“水管”。

4.DataAdapter、DataReader就像输水管,担任着水的传输任务,并起着桥梁的作用。

5.DataAdapter就像一根输水管,通过发动机,把水从水源输送到水库里进行保存。

6.DataReader也是一种水管,起着同样的作用。

7.和DataAdapter不同的是,DataReader不把水输送到水库里面,而是单向地直接把水送到需要水的用户那里或田地里,所以要比在水库中转一下(速度)更快。

8.DataSet则是一个大水库,把抽上来的水按一定关系的池子进行存放。即使撤掉“抽水装置”(断开连接,离线状态),也可以保持“水”的存在。这也正是ADO.NET的核心。

9.DataTable则像水库中的每个独立的水池子,分别存放不同种类的水。一个大水库由一个或多个这样的水池子组成。

14-4 ADO.NET简介的更多相关文章

  1. ADO接口简介

    源地址:http://blog.csdn.net/xiaobai1593/article/details/7449151 参考: 1. 百度文库:http://wenku.baidu.com/view ...

  2. ADO.NET简介

    一.ADO.NET ADO.NET源起ADO(ActiveX Data Objects),是一个COM组件库,在NET编程环境中优先使用的数据访问接口, 提供对诸如 SQL Server 和 XML ...

  3. Go 1.14 中 Cleanup 方法简介

    目录 一般的测试 使用 defer 清除依赖 使用 Cleanup 关于t.Parallel 总结 原文:What's New In Go 1.14: Test Cleanup 单元测试通常遵循某些步 ...

  4. 14、BigInteger类简介

    BigInteger类概述 BigInteger类可以让超过Integer范围的数据进行运算,通常在对数字计算比较大的行业中应用的多一些. package com.sutaoyu.usually_cl ...

  5. 14-4 ADO.NET简介2

    14-4-1Connection连接.关闭数据库 1.为了访问数据库,就要提供数据库连接类,在C#中,是通过Connection类来实现的.它有 四种类型的连接方式: SQLConnection AD ...

  6. VC++ ADO相关

    <VC对ADO的操作> ADO概述: ADO是Microsoft为最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口. ADO 使您能够编写应用程序以通过 ...

  7. dicom通讯的工作方式及dicom标准简介

    本文主要讲述dicom标准及dicom通讯的工作方式.dicom全称医学数字图像与通讯 其实嘛就两个方面 那就是“存储”跟“通讯”. 文件数据组织方式  网络数据组织方式.文件数据组织方式就是解析静态 ...

  8. linux 学习 14 日志管理

    第十四讲 日志管理 14.1 日志管理-简介 .日志服务 在CentOS .x中日志服务已经由rsyslogd取代了原先的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论该服 ...

  9. ADO.NET操作数据库(一)

    ---恢复内容开始--- [1]ADO.Net简介2015-12-07-20:16:05 ADO.Net提供对Microsoft SQL Server数据源以及通过OLE DB和XML公开的数据源的一 ...

随机推荐

  1. 一次修复linux的efi引导的集中方法总结记录

    本文通过MetaWeblog自动发布,原文及更新链接:https://extendswind.top/posts/technical/grub_uefi_repair 起因:EFI分区被删除导致引导问 ...

  2. mysql union 组合查询

    mysql> select * from test -> ; +----+------------+-------+-----------+ | id | name | score | s ...

  3. ORACLE多条件的统计查询(case when)

    前几天要做一个统计查询的功能,因为涉及多张表,多种条件的统计分析.一开始便想到了UNION和IF语句,然后写了1000多行代码,就为了查30条数据觉得不应该. 然后就开始百度,多种条件下的统计.然后有 ...

  4. 大量数据通过Phoenix插入到hbase报错记录(2)

    错误: Caused by: java.sql.SQLException: ERROR (INT10): Unable to find cached index metadata 解决办法: 在hba ...

  5. 如果要对img里面的值做特殊处理,可以直接写方法

    html <img :src="getMore('up')" alt=""> data里面定义的 one: 'http://p1.fishqc.ne ...

  6. 隐藏一个button的方法(2种) 写出一个button的按钮(2种)

    display:none;visibility:hidden: <input type = button><button>这是一个按钮 </button>

  7. 企业架构 Red Hat Drools KIE Project 三大核心产品

    美团放弃Drools自研规则引擎: https://blog.csdn.net/qq_18603599/article/details/80767912 Drools rule engine虽然好,但 ...

  8. 修改mysql开启innodb支持

    1.找到/etc/my.cnf文件 a. 修改默认引擎 b. 注释掉: loose-skip-innodb c.打开被注释掉的innodb配置 2.重启服务器  /etc/init.d/mysql r ...

  9. MD5(2)

    /************************************************ MD5 算法的Java Bean @author:Topcat Tuppin Last Modifi ...

  10. Python - Django - form 组件内置的正则校验器

    app01/models.py: from django.db import models class UserInfo(models.Model): username = models.CharFi ...