惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
Attack and Defense Labs
Attack and Defense Labs
V2EX - 技术
V2EX - 技术
O
OpenAI News
S
Secure Thoughts
H
Heimdal Security Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Schneier on Security
Schneier on Security
H
Hacker News: Front Page
S
Security Affairs
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
P
Proofpoint News Feed
The Register - Security
The Register - Security
GbyAI
GbyAI
Cloudbric
Cloudbric
MongoDB | Blog
MongoDB | Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
K
Kaspersky official blog
Forbes - Security
Forbes - Security
Y
Y Combinator Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
Scott Helme
Scott Helme
Hacker News - Newest:
Hacker News - Newest: "LLM"
The Cloudflare Blog
Recorded Future
Recorded Future
人人都是产品经理
人人都是产品经理
Cyberwarzone
Cyberwarzone
C
CERT Recently Published Vulnerability Notes
Webroot Blog
Webroot Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
L
LangChain Blog
T
Tor Project blog
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
Hacker News: Ask HN
Hacker News: Ask HN
Blog — PlanetScale
Blog — PlanetScale
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
B
Blog RSS Feed
N
News and Events Feed by Topic
阮一峰的网络日志
阮一峰的网络日志
I
Intezer
V
V2EX
T
Tailwind CSS Blog
SecWiki News
SecWiki News
NISL@THU
NISL@THU
C
Check Point Blog

博客园 - aito

在Umbraco中使用XSLTsearch包实现搜索功能 在Umbraco使用Edit in Cavas(实时编辑器)注意两点 在Umbraco中建立连接列表 在空的Umbraco中建立网页 win 7上安装Umbraco Entity Framework基础:新建一个EF应用 利用VS2010安装的SQL Express2008直接建立数据库文件 新建MCV建立测试工程,编译出错的解决办法 VS中各种文件及其扩展名 MVC学习笔记一:基础知识 分页查询SQL语句 ADO.NET事务处理 将存储过程用于Command对象 参数化SQL语句 ADO.NET常用对象 jQuery选择器 插入运行代码 - aito - 博客园 Button控件 - aito - 博客园 CSS选择器
ADO.NET简介
aito · 2010-08-24 · via 博客园 - aito

      ADO.NET是对Microsoft ActiveX Data Objects (ADO)一个跨时代的改进,它提供了平台互用性和可伸缩的数据访问。由于传送的数据都是XML格式的,因此任何能够读取XML格式的应用程序都可以进行数据处理。事实上,接受数据的组件不一定要是ADO .NET组件,它可以是基于一个Microsoft Visual Studio的解决方案,也可以是任何运行在其它平台上的任何应用程序。

      以前做数据库访问的时候,需要一直与数据库保持连接,直到获取完所有满足需要的数据之后才会断开数据库连接,这种数据库访问方式称之为连接式数据访问技术。相比于以前的连接式数据访问技术,ADO.NET除了提供连接式数据访问技术之外,还提供了另一种断开式解决方案,那就是在内存中模拟一个数据库,也就是内存中的数据库。

      在ADO.NET中对上面提到的对象都在内存中进行了模拟,在内存中的数据库对象称之为DataSet,一个内存中的数据库(DataSet)可以包含多个在内存中的表(DataTable)和内存中的视图(DataView),并且也允许在表存在一些关系(DataRelation)。同时在一个内存中的表(DataTable)或者内存中的视图(DataView)中也允许存在行(DataRow)和列(DataColumn)。 物理数据库与内存数据库之间的各对象的对应关系如下:

在上图中颜色相同的表示二者基本上是一种对应关系。

ADO.NET中的6个常用对象: Connection对象 ,Command对象 ,DataReader对象 ,DataAdapter对象 ,DataSet对象 ,DataTable对象 
      严格地说,在.net类库中并没有Connection、Command、DataAdapter和DataReader对象的,这是对相关的对象做了一个抽象。在实际的开发中,我们经常用到的数据库有Access、SQL Server、Oracle、MySQL等,尽管大部分都遵循SQL国际化标准,但是它们在遵循标准的前提下又做了一些扩充,并且即使遵循了相同的标准,但是实现方法并不相同,所以在某些情况下实现相同的功能可能在不同的数据库中SQL语句并不相同。 于是,在ADO.NET也定义了一套用于访问数据库的标准,当然这个标准是以接口(interface)的形式提供的,各数据库厂商只要实现了这个接口就能在ADO.NET下正常工作(这也是接口的作用,接口就是用于指定规范,自己本身并不实现,在Java中针对数据库访问也有一套接口留待各数据库来实现)。当然在.net类库中微软已经提供对Access、SQL Server和Oracle数据库对上面提到的接口的实现。 在ADO.NET中定义的这一套接口是IDbConnection、IDbCommand、IDbDataAdapter和IDataReader,并且还有一套实现这些接口的抽象类,分别是DbConnection、DbCommand、DbDataAdapter和DataReader。

上图最上面的是数据库访问接口,紧接着的是数据库访问抽象类,下面是针对不同数据库中实现这些接口的类,并且在括号中注明了其所在的命名空间,比如针对MySQL数据的数据库访问类就位于MySql.Data.MySqlClient命名空间下,关于MySql的数据库访问类需要到MySql数据库的官方网站去下载,它的官方网站是:www.mysql.com。其它的数据库访问类都在.net类库中自带了。
注意:访问SQL Server7.0以下版本的SQL Server数据库时需要用System.Data.OleDb命名空间下一套数据库访问类,虽然这一套数据库访问类同样也能访问SQLServer2000以上版本,但是没有办法利用SQL Server数据库的一些新特性,所以不建议使用System.Data.OleDb命名空间下的类访问SQL Server2000以上的版本。 在本篇的讲述中,针对SQL Server数据库讲述Connection、Command、DataAdapter和DataReader对象的用法,它们在其它数据库中也有对应的类,除了有些SQL语句语法不一样之外,用法是基本一样的。