ADO.NET数据库访问技术研究

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:y58jm
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:为了更好地、灵活的开发数据库应用软件,我们需要深入的研究ADO.NET的数据库访问机制,理解ADO.NET数据库的连接方法、对数据的操作与访问。ADO.NET添加了许多新的对象,如Dataset、DataReader、DataAdapter等,使得对数据库的操作更加简单。本文通过对ADO.NET数据交换原理、数据访问对象模型的使用,介绍了使用ADO.NET方法的数据库访问技术。
  关键词:ADO.NET; 数据库; DataSet; DataReader; DataAdapter
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)15-30614-02
  Research of Database Access Technology Based on ADO.NET Method
  LI Yan
  (Jingdezhen Ceramic Institute,Jingdezhen 333001, China)
  Abstract:For the sake of much better and flexible developing the database application's softs, we need to study ADO.NET about database access mechanism and understanding the ways of the use of ADO.NET about the aspect of connecting to a database,operating and accessing data. ADO.NET has added many new objects and programming interface such as Dataset, DataReader,DataAdapter. It makes the operation of database simpler. This article introduces database access technology using ADO.NET method by explaining the principle of data exchange and the use of the model for data access object.
  Key words:ADO.NET; Database; DataSet; DataReader; DataAdapter
  
  1 引言
  
  数据库应用软件在计算机应用领域占有相当大的比重,其应用范围已经越来越广泛,无论是办公自动化、生产流程控制、局域网、Intranet/Internet以及各种各样的管理系统都离不开数据库。
  在对一个数据库应用程序进行开发时,从开发者的角度而言,首要的技术环节就是要解决如何访问数据库。只有解决好这个问题,我们才能更加方便高效的使用数据库应用软件。
  但是当今数据库种类众多,几乎每一种数据库都有自己的数据格式,要想访问这些数据就必须依靠特定数据格式的驱动程序,而这些驱动程序在使用上的千差万别,又为数据库应用软件的开发带来了不少麻烦。
  为了解决这个问题,微软开发出了ADO,这是一组COM(Component Object Model)组件。它通过一个易于使用的封装类提供对底层数据的访问,从而使得对数据库的操作更加简单。ADO.NET则是在ADO基础上开发出的数据访问框架的最新产物,它是.NET框架的一部分,ADO.NET比ADO的功能更加强大,是在.NET代码中访问数据库的最好工具。深入研究ADO.NET的数据库访问技术对于数据库应用软件的开发具有十分重要的意义。
  
  2 ADO.NET的体系结构
  
  就其本质而言,ADO.NET是支持数据库应用程序开发的数据访问中间件。ADO.NET建立在.NET Framework提供的平台之上。它是使用Microsoft .NET Framework中的托管代码构建的,这意味着它继承了.NET执行时环境的健壮性。ADO.NET主要是用来解决Web和分布式应用程序的问题,它由.NET Framework(提供了对.NET应用程序的数据访问和管理功能)中的一组类或命名空间组成。
  ADO.NET是用来处理基于Web应用程序所需的无连接计算环境。无连接的设计支持ADO.NET方便地伸缩企业应用程序,因为在每个客户机系统和数据库之间并没有使用开放连接。而是在开始客户端连接时,暂时打开一个到数据库的连接,从数据库服务器中检索需要的数据,然后关闭连接。客户端应用程序然后使用与数据库服务器所维护的数据存储完全独立的数据。客户端应用程序可以定位数据的子集,修改该数据,并将该数据一直缓存在客户机中,直到应用程序指示将所有变化传回到数据库服务器。这时会暂时打开一个到服务器的新连接,对客户端应用程序所作的所有修改都被传回到更新批处理中的数据库,同时关闭连接。
  支持这种无连接环境的核心ADO.NET组件是DataSet。DataSet本质上是一个缩小的内存中数据库,它的维护独立于后台数据库。只有在填充DataSet或者将DataSet中的数据变化传回到数据库时,才会打开到数据源的连接。这种无连接的计算环境将系统开销最小化,并改进了应用程序的吞吐量和可伸缩性。ADO.NET DataSet提供的内存中数据库提供了在成熟的数据库中可以找到的许多功能,包括支持数据关系、创建视图的能力、支持数据约束以及外键约束。
  在ADO.NET设计中,支持无连接的、基于Web的应用程序是其中一个重要特性,然而,这并不是ADO.NET的全部功能。无连接模式也可以用于Web应用程序,但它并不是客户端/服务器和桌面应用程序的最佳模式。当在连接方式下运行时,可以更好更高效地实现这些类型的应用程序。为了支持这种连接风格的计算,ADO.NET提供了DataReader对象。DataReader主要使用连接方式提供了快速只向前的游标风格的数据访问。虽然DataSet提供了无连接的Web应用程序的基础,但DataReader支持桌面和客户端/服务器应用程序所需的快速连接风格的数据访问。
  
  3 ADO.NET访问数据库的模式
  
  Windows平台下的ADO.NET主要有3种访问数据库的模式,分别为OLEDB模式、ODBC模式和SQLCLIENT模式,另外还有其他数据访问模式,如对Oracle数据库的访问可以使用专用的Oracle模式。
  3.1 OLEDB模式
  OLEDB模式主要用于访问OLEDB所支持的数据库。OLEDB是Microsoft公司开发的一种高性能的、基于COM的数据库访问技术,OLEDB和其他Microsoft公司数据库技术的不同之处在于其提供通用数据访问的方式。OLEDB数据提供程序通过OLEDBConnection对象提供了使用OLEDB公开数据源的连接,以及与Microsoft SQL Server的连接。
  3.2 ODBC模式
  ODBC模式主要用于访问ODBC所支持的数据库,它是Windows平台的一种通用数据访问方式。一般在Windows平台下存在的数据库都可以通过建立系统DSN来实现对数据库的调用。
  3.3 SQLClient模式
  SQLClient只用于访问MS SQL Server数据库,是ADO.NET中比较特殊的组件。当然,MS SQL Server也是OLEDB和ODBC所支持的,因此也可以通过OLEDB和ODBC模式来访问MS SQL Server,但实验证明对访问MS SQL Server来说,采用SQLClient模式比OLEDB和ODBC模式效率更高,所以使用MS SQL Server作为数据库开发应用程序时,最好使用SQLClient模式访问。
  
  4 ADO.NET的主要对象
  
  ADO.NET中有很多重要的对象。这些对象主要实现两个主要的功能:(1)数据访问:用于访问数据库中数据和操作数据库的类型;(2)数据表示:用于包含数据库数据(如数据表)的类型。这两种类型之间联系密切,在数据库开发中两种类型都会用到。
  ADO.NET包含很多重要的对象,其中Connection,Command,DataReader, DataAdapter是数据访问类,其他的如:DataSet,DataTable, DataView等是数据表示类。通过使用这些对象,使得对数据库的操作更加简单。
  4.1 Connection对象
  在 ADO.NET 中,使用 Connection 对象连接到特定的数据源。使用的 Connection 对象取决于数据源的类型。创建Connection对象时,应在连接字符串中提供与DBMS通信必要的信息,如数据库的位置、用于认证的用户名和密码以及要访问的DBMS中的数据库。
  所有其他ADO.NET数据访问类都依靠Connection与数据库进行通信。
  数据库连接只在传输数据时才打开,因此创建Connection实例时并不自动连接数据库。Connection定义了Open()和Close()方法,用于控制连接何时可用。
  4.2 Command对象
  Command对象提供与数据库交互的主要方法。可以用Command对象来执行SQL语句、运行存储过程等。
  要使用Command对象执行命令,有三种选择,有些命令不返回结果,这种情况下就可以使用Command.ExecuteNonQuery()方法;有些命令返回一个结果,就需要使用Command.ExecuteScalar()方法;如果是返回多行命令,就应用Command.ExecuteReader()方法。
  对于不同的数据库调用模式,使用的Command是不同的,对应的Command要与其对象模式相对应。
  4.3 DataReader对象
  使用DataReader可以从数据库返回一个只读的、仅能向下滚动的串流(Stream),而且当前内存中每次仅存在一条记录。
  在程序开发的过程中,开发人员经常需要执行一些简短的操作,比如访问单独的用户名和密码。在执行这些操作时,就可以直接使用DataReader对象。
  使用DataReader对象时,首先必须调用DataReader.Read()方法选择结果集中的一行,再不断调用该方法来移动DataReader,获取数据信息。获取到一行时,Read()方法返回True;否则返回False。
  4.4 DataAdapter对象
  在ADO.NET的核心数据访问对象中,最后一个是DataAdapter。
  DataAdapter用于从数据源检索数据并填充到DataSet中的表,它还将对DataSet的更改解析回数据源。DataAdapter使用.NET Framework数据提供程序的Connection对象连接到数据源,并使用Command对象从数据源检索数据以及将更改解析回数据源。
  DataAdapter最常用的两个方法是DataAdapter.Fill()和DataAdapter.Update()。Fill()方法从数据库中获取数据;Update()方法更新数据库中的数据。这两个方法都可以用于数据集或单个数据表。
  4.5 DataSet对象
  DataSet是ADO.NET的核心,它是从数据源中检索到数据在内存中的缓存,处理从数据存储中读出的数据,并以离线方式存在于本地内存中。可以使用相同的方式来操作不同数据来源取得的数据。不管底层的数据库是SQL Server还是Oracle,DataSet的行为都是一致的。
  在DataSet中可以包含任意数量的DataTable,且每个DataTable对应一个数据库。一般来说,一个对应DataTable对象的数据表就是一组DataRow与DataColumn的集合。可以使用这些对象与DataRelation对象互相关联。
  DataSet可将数据和架构作为XML文档进行读写。数据和架构可通过HTTP传输,并在支持XML的任何平台上被任何应用程序使用。开发人员可以使用WriteXmlSchema方法将架构保存为XML架构,并可以使用WriteXml方法保存架构和数据。若要读取既包含架构又包含数据的XML文档,可以使用ReadXml方法。
  
  5 ADO.NET的运行模式
  
  ADO.NET的运行模式主要分为以下几个步骤:(1)用户通过Web方式查寻数据库时,调用一个ASPX过程;(2)在ASPX网页的代码中使用ADO.NET的Command对象对数据执行查询操作;(3)对数据库的访问首先建立在连接并执行查询命令,然后从数据库中读取数据;(4)数据被存放在DataSset对象中,从数据库返回的是只读的信息;(5)将这些信息显示在页面上;(6)断开与数据库的连接。
  
  6 结束语
  
  ADO.NET集合了所有用于数据处理的类,是.NET数据库应用程序最终的解决方案,正在成为现今数据库开发的一种潮流,并代表了未来技术发展的方向。由于目前网络数据库是主流,ADO.NET在其运行效率、存取速度以及网络负载平衡等方面的均衡表现,使得它具有顽强的生命力。在进行数据库应用软件开发中,使用ADO.NET可以极大的帮助你以一种更加高效的方式来构建并完成任务。
  
  参考文献:
  
  [1]David Sceppa. ADO编程技术[M]. 北京:清华大学出版社,2001.
  [2]张跃廷,韩阳,张宏宇. C#数据库系统开发实例精选[M].北京:人民邮电出版社,2007.6.
  [3] Karli Watson. C#2005数据库编程经典教程[M]. 北京:人民邮电出版社,2007.5.
其他文献
摘要:C语言是一门面向用户的过程语言,指针是该语言中最为灵活的一部分。汇编语言是一门面向处理器的过程语言,该语言中没有指针的明确定义,但指针的概念却随处可见。本文通过间接寻址方式引出指针在汇编语言中的应用,借助存储空间图深入探悉C语言中的指针和汇编语言中的间接寻址的密切关系,用一个全新的概念更好的去理解指针在这两门语言中的应用和联系。  关键词:存储空间图;间接寻址;一级指针;二级指针;存储单元 
期刊
摘要:传统构架下的ERP软件,在实际应用中出现了许多问题。文章介绍了一种新的软件架构方法——面向服务架构(SOA)的理念及其特点,并对面向服务架构的ERP和面向对象架构的ERP分别在体系结构和开发方法上作比较,最后选取SAP公司的NetWeaver和ESA产品设计理念作为案例,进一步阐述了SOA思想在ERP设计中的应用特点和优势。  关键词:面向服务架构(SOA);面向对象架构(OOA);软件设计
期刊
摘要:Solaris是一款多任务处理的分布式企业网络操作系统软件,它免费、开源并且功能异常强大、性能超级稳定,身受众多大型网络应用的青睐。本文主要介绍Solaris10的系统维护管理技术。  关键词:Solaris;系统维护;系统管理  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)15-30648-01  Maintenance and Management Tec
期刊
摘要:文中讨论了通过互连网对远程局域网实现控制的原理;在控制端和受控端制定的通信规约基础上,实现控制端对受控端局域网控制包含获取局域网服务和局域网文件下载。   关键词:远程注入;通信规约;控制端;HTTP 隧道  中图分类号:TP393 文献标识码:A文章编号:1009-3044(2007)14-30656-01  Research and Design of Remote LAN Monito
期刊
摘要:介绍了开源的,面向对象数据库db4o的优点及特性,通过c#语言展示其如何在程序设计中使用和操作。细致讲解db4o如何对数据库中的对象进行基本的加载,更新,删除操作及其三种十分重要的查询方式。  关键词: 面向对象数据库;db4o;开源;程序设计  中图法分类号: TP311.132.4文献标识码: B 文章编号:1009-3044(2007)15-30604-02  The Open Sou
期刊
摘要:本文在ASP中建立与Web数据库的连接,以数据库Student.mdb中的“学生”表为例,阐述本方法操作数据库添加新记录的整个过程,并与传统的方法进行比较和探究。  关键词:ASP;ADO组件;ODBC驱动程序;数据库   中图法分类号:TP311 文献标识码:A 文章编号:1009-3044(2007)15-30616-01  ASP Links with the Access Datab
期刊
摘要:本文主要介绍了基于DVD系统将CD格式文件压缩为MP3文件存储到U盘的方法和基本原理,充分利用DVD系统自身的播放功能获取CD上的PCM数字信息,经过硬件解码,压缩成MP3格式,通过文件系统的操作经USB传输将数据写入U盘。  关键词:DVD系统;FAT文件系统;CD_RIPPING  中图分类号:TP37文献标识码:A文章编号:1009-3044(2007)16-31135-01  Fil
期刊
摘要:P2P网络技术在使人们享受信息资源,增强网络可用性的同时,也带来了新的网络安全问题。本文对P2P网络的安全性进行了分析,并提出了相应对策。  关键词:P2P;网络安全;网络技术  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)15-30653-01  Analyses and Countermeasures of P2P Network Security  MA
期刊
摘要:文章以Visual FoxPro 6.0数据库管理系统为软件平台,通过查询实例阐述结构化查询语言(Structured Query Language,简称SQL)如何反映关系数据库三级模式结构,如何体现关系代数和关系演算思想。  关键词:关系数据库三级模式结构;关系代数;关系演算;SQL   中图分类号:TP311文献标识码:A 文章编号:1009-3044(2007)15-30606-03
期刊
摘要:本文主要描述了中国铁路通信系统的几十年来的发展历史,并通过对GSM-R系统具体原理和即将投入运营的合宁高速铁路GSM-R系统的具体应用的介绍,充分说明了GSM-R系统是铁路未来通信发展的方向,是铁路跨越式发展,全面实现信息化建设的里程碑。  关键词:铁路通信系统;GSM-R;信息化;网络建设;业务功能;历史意义  中图分类号:TE46文献标识码:A文章编号:1009-3044(2007)15
期刊