APP下载

ASP.NET中ADO.NET对数据库的管理

2014-11-07黄金山

电脑知识与技术 2014年29期

黄金山

摘要:近年来,我国的计算机网络技术发展迅速,且为推动我国各个社会生产领域的发展做出了较大贡献。作为计算机网络技术发展的必然产物,数据库技术的产生与发展不仅代表了我国的计算机网络技术已经进入了一个新的阶段,更代表了我国整体科技生产力的进步和发展。该文以数据库的管理为研究对象,通过对ASP.NET和ADO.NET技术进行分析,在结合ADO.NET数据交换原理的基础上,对其在数据库管理中的应用展开了深入研究。

关键词:ASP.NET;ADO.NET;数据库管理

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2014)29-6811-02

ASP.NET是近年来新兴的一种动态网站的设计技术,其是具有较强功能的交互式Web网站在建立过程中所应用到的主要技术,ASP.NET技术在动态网站设计中的应用不仅大幅提高了网站资源的利用效率,而且也提高了系统对整个数据库的管理效率。该文以ASP.NET中ADO.NET对数据库的管理作为研究对象,通过阐述两种技术的概念和特点,并结合ADO.NET的数据库交换原理,对ADO.NET连接与控制的数据库对象进行了详细研究。

1 ASP.NET与ADO.NET技术简介

1.1 ASP.NET技术

ADO.NET作为NET Framework中的重要组成部分,是微软公司推出的一种新型的动态网站的设计技术和程序框架,ASP.NET技术的应用大幅提高了网站的性能和开发效率[1]。ASP.NET不仅拓展并加强了ASP(动态服务器页面)在网页开发过程中的功能优势,而且突破了单纯以ASP技术进行网站开发的各种限制,其最为关键的网站设计技术特色为:为网站设计提供了一个多语言组件的开发与执行环境。

1.2 ADO.NET技术

ADO.NET是即动态网站数据访问服务,是ASP.NET技术的关键组成部分,具体说来则是在NET平台中专门用来进行后台数据操作与存储的一组类[2]。虽然ADO.NET是在ADO(数据库中的数据结构)的基础上发展而来的,但是ADO.NET的功能却要比ADO强大的多。ADO.NET中除了引入面向对象结构外,还将标准的可标记扩展语言(XML)作为数据交换的主要格式,从而实现网络中不同系统的相互运作。

2 ADO.NET数据交换原理

由1.2可知ADO.NET是针对ADO的部分缺陷,进行重新设计的新型数据访问对象,其可以有力地支撑动态网站中的底层数据交换模型[3]。基于ADO的RecordSet(数据库表中的记录集)对象在不同的应用程序或者不同的计算机组件之间进行交换时,必须以COMmarshalling(列集)机制为基础,将相关数据和参数进行二进制格式的包装,而由于.COM只支持Automation(自动化)的数据类型。因此,在利用ADO进行RecordSet对象交换时,还需要依次进行必要的数据转换,增加了对象处理的复杂程度。而ADO.NET中的DataSet对象可以利用可标记扩展语言实现数据交换,使得交换后的数据可以直接通过防火墙被相关的计算机程序或组件所利用。此外,由于可标记扩展语言(XML)是一种简单的文字数据,因此,系统接受端的应用程序在运行时,就无需受到以COM为基础的相关应用程序的限制,在简化了Marshalling数据包装过程的同时,也有效提高了系统数据交换的速度。

3 ADO.NET连接与控制的数据库对象

利用ADO.NET技术进行数据库管理的实质则是ADO.NET中的对象对数据库的管理作用。由前文可知ADO.NET技术是在ADO技术的基础上发展而来的,因此,其除了具有ADO的Command与Connection对象外,还具有许多新的对象与程序化接口,例如DataSet、DataReader以及DataAdapter对象等[4]。

3.1 数据库的命令执行对象Command

ADO.NET中的Command对象主要是数据库的查询、调用或存储的过程以及对返回程序内特定表内容的直接请求[5]。在ADO.NET中,Command对象具有三种不同类型的查询命令执行原理,分别为:(1) 利用Execute Non Query(不需返回数据命令)返回的并不是系统所需查询的数据行,而是系统需要返回的行数;(2) Executer reader(执行-查询)是进行数据读取的一种简单且高效的方法,其可以将Oledb reader对象的查询结果返回,具体的返回方法为:若存在相关数据的记录,则系统将自动读取第一条记录,然后将其数据指针自动下移;若不存在数据记录,则直接返回False;(3) 最后一种方法则为xecute-Xml-Reader方法,是专门用来处理以可扩展标记语言格式为主的系统返回结果的查询工作的。

3.2 数据库的连接对象Connection

ADO.NET中的Connection是用来与数据库建立或断开连接的对象,其在数据库管理中具有“渠道”的作用,其他对象例如DataSet和DataReader等均需要通过其才能与系统数据库进行连接,进而提交并获取相关查询结果。Connection建立对象与数据库连接的方法主要包括了如下几种:

1) 利用SQL Server(结构化语句查询服务)结构将对象与数据库连接并打开数据库的方法,方法的具体实现方法如下:

Dim splcon as New sqlConnection (dserver=lo-Calhost;uid=sa;pwd=sa;datebase=Northwindd);

sqlcon.Open;

sqlcmm.Connection = splcon

其中对象释放与断开连接的方法分别为:sqlcon.Close与sqlcon1=Nothingendprint

2) 低级应用程序接口(OLEDB)进行对象连接与打开数据库的方法为:

Dim oleconn as New oleconn (dprovider=SQLOLEDB;database=Northwind;user id=sa;pwd=sad);

olecmm.Connection = oleconn

其中,olecmm表示olecmm.Command的对象,释放对象的方法为:

olecmm = nothing;

oleconn1 Close;

oleconn = nothing

3.3 存储数据读取对象DataSet

3.3.1 DataReader对象

动态网站当中,当以浏览的方式对大量的信息数据进行查看时,通常会占用大量的内存,从而使系统的性能下降。例如,在利用ADO-Recordset对象对某个链接中的1000行数据库记录进行读取时,则必须将此1000行数据记录平均分配到上述链接当中,一直到这个链接的生命周期完全结束。假定在同一时间内,存在多个用户对同一台计算机进行上述操作,则计算机的内存则不可避免地被过度使用[7]。为了解决这一问题,ADO.NET为系统提供了Data Reader对象。Data Reader对象的实质是从数据返回的一个只能向下滚动的只读型串流,且基于DataReader的数据程序在当前内存之中每次仅保留一条记录,从而为系统节省了较大的内存空间,提高了系统的运行效率。Data Reader对象的应用主要体现在以下两种数据处理情况:(1) 客户界面并未用到数据绑定,且更新数据是在基于结构化查询语言的前提下,以手写形式形成的代码,在此种情况下,Data Reader对象将为系统提供有效的数据访问方法;(2) 另一种则是需要查询数据库状态但无需实现数据自动更新功能的情况。此时,ADO.NET中基于结构化查询语言的DataReader对象通过实现对SQL Sever平台的数据库进行直接操作,在借助低级程序接口Oledb的基础上,对ADO中的核心成员数据进行支持[8]。情况(1) 和情况(2) 具体的数据库管理方法为:

1) Dim myReader As Sq-l

DataReader=myCommand.ExecuteReader()

2) Dim myReader As OLEDb

DataReader=mayCommand.ExecuteReader()

值得注意的是两种情况下ADO.NET对数据库的管理方法均是在VB程序语言下进行实现的。

3.4 数据绑定

数据绑定是ADO.NET对数据库进行管理的另一主要方法。所谓数据绑定是指将计算机浏览器的显示控件与数据源相连,则ASP.NET在无需人工参与的情况下,便可以将数据源中的数据自动显示出来的一种自动化数据管理方法。在进行系统数据绑定前,首先要指明数据源,再利用Databinder的数据绑定语法实现相关数据的最终绑定。利用ADO.NET对数据库实现绑定的方法主要包括了如下三种:(1) 仅使用一个单独控件,在单一控件的使用过程中,只有其自身与数据源进行连接,即原始的Databinder方法;(2) 利用一个包装控件,此时,该包装空间中可以包括诸多子控件,进而实现多个控件与数据源相连接,并达到数据绑定的目的,即基于DataGrid的数据绑定法;(3) 在不借助任何连接的基础上,对Web页面上显示的所有内容连接进行直接获取,以达到数据绑定的目的[9]。以此方法作为数据绑定的主要方法可以使系统在运行过程中,为用户自动更新逻辑,大幅提高了数据的绑定和利用效率。

4 结论

本文通过对ASP.NET与ADO.NET技术的概念和特点进行分析,在阐述ADO.NET技术的数据交换原理的基础上,从数据库的命令执行对象Command、数据库的连接对象Connection、存储数据读取对象Data以及数据绑定等方面对ADO.NET连接与控制的数endprint