刘维岗 (天津现代职业技术学院 天津300350)
随着信息社会的到来,越来越多的管理从日常的手工转向了数字化管理。比如:学生信息管理系统、图书管理系统、科研课题管理系统等。这些系统的实现以及功能的完善,都离不开数据库。随着网络的普及以及广泛应用,人们的生活学习、生产等都与之密切相关。随之而来的就是信息管理系统在网络上的广泛应用。如何开发出具有较高性能的基于网络的信息管理系统?对于这一问题,我们只需要把最核心的技术解决了,那么这个基于网络的信息管理系统的高效能的问题就可以很容易实现。如何实现对不同数据库的访问以及实现的方法,是本文主要阐述的内容。
ASP.NET是ASP的前身,它是微软公司的一项技术,是一种对于嵌入在网页中的脚本可由因特网服务器执行的服务器端脚本技术。ASP.NET是一种WEB应用程序开发平台,它为用户提供了完整的可视化开发环境,并在生产效率、灵活性和可扩展性、性能、安全性、完整性上更加完善,在操作及代码编写上更加简捷、方便。
1.1.1 灵活性 ASP.NET与语言无关,可以选择最适合应用的程序语言,也可以跨多种语言分割程序。
1.1.2 数据访问的高效性 ASP.NET通过ADO.NET提供的DataGrid等数据库组件可以直接和数据库联系。
1.1.3 简易性 大量使用组件技术,从简单的窗体提交到客户身份验证很容易实现。采用代码托管简化程序开发过程。
1.1.4 高效性 页面只需要一次编译后不需要重新编译,直到该页面被修改或Web应用程序重新启动,这使得多次访问时速度有了极大的提升。
1.1.5 ASP.NET具有更加完善的开发工具 可以使用微软开发Visual Studio开发环境,使用ASP.NET控件进行高效的应用程序开发。
当用户向服务器发送一个HTTP,服务器的IIS接收到请求后之后,第一步是加载不同的.dll文件,主要根据客户端发出请求的页面类型确定相应的.dll文件;第二步调用相应的处理模块,根据不同的请求调用能够处理这个请求的模块。在ASP.NET中,用HttpHandler(HTTP处理程序组件)模块来实现。例如请求是.aspx类型文件,在服务器端有默认的HttpHandler专门处理.aspx类型的文件。IIS在应答用户请求处理文件之前,需先经过一些不同HttpModule的处理,这些都是系统默认的Modules(用于获取当前应用程序的模块集合)。然后才再将这条请求发送给能够处理这个请求的模块。这样可以安全、高效、可控地完成用户的请求。ASP.NET运行原理如图1所示。
图1 ASP.NET运行原理图
ADO.NET是下一代ActiveX Data Objects(ADO)。它是.NET Framework中的一列类库,是一种数据存取模型。具有可扩展性、WEB无状态性。ADO.NET提供了到所有OLE-DB数据源的接口,让开发人员可以在各种环境中对数据库进行连接、检索、操纵和更新。在ADO.NET中,大量复杂的数据操作的代码被封装起来。这样在开发ASP.NET应用程序时,只需要编写少量的代码即可完成大量的操作。ADO.NET并不像C#.NET、Visual Basic.NET那样是一种语言,ADO.NET是对象的集合。
ADO.NET 中主要包括 Connection、Command、DataReader、DataSet和DataAdapter对象。每个对象的主要功能如下:①Connection对象主要提供与数据库的连接功能;②Command对象用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令;③DataReader对象通过Command对象提供从数据库检索信息的功能,DataReader对象是以一种只读的、向前的、快速的方式访问数据库;④DataSet是ADO.NET的核心对象,它是一个数据库容器,可以把它当作是存在于内存的数据库。DataSet是数据的内存驻留表示形式,它可以用于多个不同形式的数据源。DataAdapter对象提供连接DataSet对象和数据源的桥梁。
针对不同的数据库访问需求,ADO.NET为访问数据源中的数据提供了两种模式:①基于连接的访问模式,可以使用DataReader对象来实现;②断开连接模式,我们可以使用DataAdapter对象来实现。为了发挥ADO.NET的最佳性能和开发出高性能的应用程序,我们在开发时,需要根据自己的实际情况选择合适的模式。
2.1.1 连接模式 这种模式是最常用、最基本的一种模式。在连接模式下,客户机会一直保持和数据库服务器的连接,然后读取数据。所有数据库的操作都需通过这个连接才能和后台的数据源进行交互,这和ADO技术是一样的。这种访问模式是通过DataReader对象来实现的,在已经建立的数据连接的基础上,DataReader对象提供了对数据库的向前、只读的在线数据访问方式和进行遍历。这种模式适合数据传输量少、系统规模不大、客户机和服务器在同一网络内的环境。ADO.NET的连接模式只能返回向前的、只读的数据,这是由DataReader对象的特性决定的。一个典型的ADO.NET连接模式如图2所示。
图2ADO.NET连接模式
连接模式下数据访问的步骤如下:①使用Connection对象连接数据库并向数据库索取数据。②索取到的数据存放在DataReader(数据阅读器)对象中并进行读取。③完成读取操作后,关闭DataReader对象。④关闭Connection对象。
2.1.2 断开连接模式 断开连接模式是采用Dataset对象的数据访问模式,DataSet是ADO.NET的中心概念,支持ADO.NET断开式、分布式数据方案的核心对象。DataSet对象是创建在内存中的集合对象。它可以包含任意数量的数据表,以及所有表的约束、索引和关系,相当于在内存中的小型关系数据库。通过DataAdapter对象对数据源中的数据进行检索,将所需要的数据填充到DataSet对象的表中,DataSet中的数据表格可以单独存放,也可以通过DataRelation对象在表格之间建立关联,这样增加了数据处理的灵活性。
在断开连接模式中,服务器不需要维护和用户之间的数据库连接,只有当用户需要将更新的数据传回到服务器时再重新连接,这样服务器的负担大大减轻,并且可以同时支持更多并发的用户访问。在整个过程都需要DataSet对象的支持和配合,这是ADO.NET的非凡之处。断开连接模式比较适合于数据量较大、系统节点较多、结构复杂的网络。典型的ADO.NET断开连接模式应用如图3所示。
图3 ADO.NET断开连接模式应用
断开连接模式下数据访问的步骤如下:①使用Connection对象连接数据库并获取数据库中的数据。②获取到的数据存储在DataAdapter(数据适配器)对象中并把数据填充到DataSet(数据集)对象中。③关闭Connection对象。④对用户本地内存中的DataSet(数据集)对象中的数据进行各种操作。⑤操作完毕后,启动Connection对象连接数据库。⑥利用DataAdapter对象更新数据库。⑦关闭Connection对象。
创建一个数据库链路;请求一个记录集合;把记录集合暂存到DataSet;如果需要,返回第2步(DataSet可以容纳多个数据集合);关闭数据库链路;在DataSet上做所需要的操作。
当要连接到数据库时,首先确定一个.NET数据提供程序。对于不同数据提供程序包含的类也不同。这些类能够连接到数据源,高效地对数据进行各种操作。利用Connection对象可以连接到数据库。
3.1.1 Connection类有4种:SqlConnection类的对象连接SQL Server数据库;OracleConnection类的对象连接Oracle数据库;OleDbConnection类的对象连接支持OLE DB的数据库,如Access;OdbcConnection类的对象连接任何支持ODBC的数据库。
3.1.2 使用Connection对象连接数据库。实现数据库连接一般可采用以下步骤:①创建Connection对象;②把连接字符串赋值给Connection对象的Connection-String属性;③调用Connection对象的Open方法打开连接;④操作完毕后,调用Connection对象的Close方法关闭连接。
3.2.1 使用SqlConnection对象连接SQLSERVER数据库
首先建立用于与SQLSERVER服务器连接的类。语法如下:SqlConnection con=newSqlConnection("Server= 服务器名;User Id=用户;Pwd=密码;DataBase=数据库名称");
下面的代码通过ADO.NET连接到本地SQL Server中的mydata数据库。
3.2.2 使用OleDbConnection对象连接OLE DB数据库
连接Access数据库的语法格式
3.2.3 使用OdbcConnection对象连接ODBC数据库
对于数据库中的数据操作可以通过Command对象来实现。Command类用于执行SQL命令或存储过程。使用Connection对象与数据源建立连接后,使用Command类创建的对象进行对数据源的增减、删改等操作,操作实现的方式可以是使用SQL语句或是使用存储过程。使用Command类执行SQL命令一般可采用以下步骤:①创建Connection对象并设置要执行的SQL命令和所使用的当前连接;②用Connection对象的Open方法打开数据库连接;③调用Command对象的相应方法执行SQL命令;④调用Connection对象的Close方法关闭连接。
以下对数据库的操作以学生数据库来实现。
3.3.1 从数据源中读取数据 读取数据一般有两种方式,一种是DataReader对象来直接访问,另外一种是通过DataSet和DataAdapter来访问。
例如:
3.3.2 向数据库中添加记录 向数据库中添加记录,首先要创建SqlConnection和SqlCommand对象,然后打开数据数据库连接,调用SqlCommand对象的ExecuteNonQuery方法完成插入操作,最后关闭数据库连接。
例如:
3.3.3 更新数据库记录 更新数据库记录与添加数据库记录的操作基本一致,只要把插入记录的SQL语句替换成更新记录的SQL语句就可以了。
例如:
3.3.4 删除数据库记录 删除与添加和更新的步骤基本一致,只需要把相应的SQL语句改动一下即可。
例如:
随着网络的发展以及信息化的网络普及,数据库的应用已经越来越广泛。作为信息管理系统中最核心的数据库开发技术也越来越重要。ASP.NET作为一项Web应用程序开发技术得到开发者的欢迎。其中ADO.NET技术实现了高速的、安全的数据访问。■
[1]刘晓宇.基于.N ET的数据库访问技术优化研究[J].软件导刊,2011,10( 4):150-153.
[2]魏祖宽,江利娟,金在弘.数据库访问技术比较研究[J].计算机与现代化,2009(12):46-50,54.
[3]李维杰,孙乾君.SQ L Server2005数据库原理与应用简明教程[M].北京:清华大学出版社,2007.
[4]陈英学.A SP.N ET深入编程[M].北京:希望电子出版社,2001.
[5]陈会安.A SP.N ET2.0网页制作彻底研究[M].第二版.北京:清华大学出版社,2007.
[6]蒋薇.基于A D O.N ET的数据访问技术探索[J].仪器仪表学报,2009,30(6):32-35.
[7]张跃廷.C#数据库系统开发案例精选[M].北京:人民邮电出版社,2007.
[8]曾长军,朱剑锋,刘坤.SQ L Server数据库原理及应用[M].北京人民邮电出版社,2007:211.
[9]尼春雨,王国胜,紫宝杰.A SP.N ET+SQ L Server动态网站开发[M].北京:清华大学出版社,2009:165.
[10]华国栋,刘文予.基于A D O.N ET的数据库访问及其性能优化[J].计算机应用研究,2004(6):215-217.