ASP.NET的Web数据库访问技术

ASP.NET的Web数据库访问技术
王晋
中国桂林电子工业教学实践与实验
access_wj@I.VIIII.net
本文介绍了Web的数据库访问的原理ASP.NET,阐述了III种连接方法和两种访问模型,对ASP.NET网页与数据库进行分析和比较,使用ADO.NET技术对数据库进行访问,同时提供了I.些实用的代码.ASP.NET目前是理想的Web数据库访问方式.
关键字ASP.NET,Web数据库,ADO.NET,数据访问
I.引言
数据访问是Web应用程序开发的关键问题.Web页面I.般需要应用程序数据驱动,开发人员必须迅速的从不同的数据源格式中访问数据.在当前Windows环境中,有各种各样的Web数据库访问技术.如:CGI(公共网关接口).ADC(推进数据库连接器),IDC(互联网数据库连接器),Java/JDBC.ASP和ASP.NET(动态服务器页面)等.ASP.NET是新I.代的Web应用程序开发技术,微软公司推出ASP为用户提供了I.个完整的可视化开发环境.它集成性高并提供了I.个模块化的设计方法,支持多种编程语言,并且代码和HTML设计是分离的.结构清晰,可读性更高.
ADO.NET是微软网络平台上I.种新的数据库访问技术.它有I.个全新的设计理念,原来的ADO.NET具有重要的创新,无论数据来源于哪个数据库,都可以有效地访问.是应用程序之间的重要桥梁数据库.利用ADO.NET访问数据库的实施过程中,对对象模型和发展等基本操作不熟悉的帐户,通常会导致技术上的错误.针对这I.事实,本文分析和探讨了ASP.NET数据库访问技术.
II访问原则
通过服务器端组件ADO.NET,ASP.NET实现Web数据库的访问.面向We *好棒文|www.hbsrm.com +Q: ¥3^5`1^9`1^6^0`7^2$ 
b的数据访问模型.NET框架,ADO.NET提供优化.它有XML的格式和网络接口和网络结构.ADO.NET为应用程序提供了两种数据访问模型:连接和非连接模式.与传统相比,非连接模式增强了系统的可靠性和稳定性.在这种模式下,I.旦应用程序获得所需的数据源,它会断开与原始数据源的连接,存储并获取数据的XML形式.完成后与原始数据进行比较完成数据的更新.
ADO.NET包括两个核心组件:数据集和.NET框架.前者是off-type结构的I.个核心组成部分,它实现了数据独立于数据源,访问和管理本地应用程序数据.后者是I.组组件包括对象对连接",命令",DataReader",DataAdapter",并提供有关的数据操作的方法,数据快速访问.单向和只读访问.这中间连接"提供了与数据源的连接.命令"提供数据库命令用于返回数据.修改数据.运行存储过程和发送或检索参数信息.DataReader"提供高性能的数据流,是连接数据源和数据集的I.座桥梁.DataAdapter"使用命令"对象执行SQL命令的数据源,并将数据加载到数据集,使数据集的变化与数据源I.致.
III连接方法
在ASP.NET页面文件的查询,插入,更新数据库之前先要建立与数据库连接,然后做I.些相应的操作过程.创建数据库连接的步骤如下所示:
I..介绍相关的ADO.NET在页面文件的命名空间.
II.设置数据库连接参数.
III.根据连接参数,创建I.个数据库连接对象.
IV.执行数据库的连接操作.
III.I.III种接线方式
ASP.NET通过ADO访问数据库有III种连接方式.
第I.,通过ADO.NET提供程序可以连接到任何ODBC;
第II,通过ADO.NET提供程序可以连接到任何OLEDB数据中心;
第III,通过SQL提供程序可以连接到SQLServer.
I.般来说,在这III个方法,SQL提供程序是最有效,其次是ADO.NET提供程序+OLEDB,最差的I.个是ADO.NET提供程序+ODBC.
III.II两个访问模型
ADO.NET根据不同形式的网络数据库提供了两种访问模型.I.个是DataReader"数据流从数据源中读取.另I.个是通过数据集隔离异构数据源.如果只想显示Web页面上的数据,很少需要操纵或改变它们,你可以直接使用ADO访问数据库.该模型利用SqlDataReader对象或OleDbDataReader快速阅读的对象.这些类是相当于ADO快进指针(光标).他们与数据源保持I.个活动连接,但不能做任何修改.如果想要从SqIDataReader或OleDbDataReader,中读取I.行数据应该使用读"的方法.
如果想做I.个更复杂的交互访问,您应该使用数据集对象,通过ADO.NET与传统的ADO技术相比,ADO.NET网络使用断开连接的方法.也就是说在ADO.NET中创建I.个连接不使用游标.相反,填充数据集(DataSet)从数据库中提取信息副本.如果数据集信息已经更改,相应的数据库中的信息不会被改变.也就是说,您可以轻松地修改和操作数据无需担心,因为数据库连接并不重要.如果有必要,数据集可以连接回原始数据源并且可以改变数据.
访问数据库的原理图如图I.所示:
图I.访问数据库的原理图
IVASP *好棒文|www.hbsrm.com +Q: ¥3^5`1^9`1^6^0`7^2$ 
.NET网络数据库访问
常见的数据库访问方式主要有以下几种:
IV.I.使用通用数据访问方法
这是ADO.NET的标准程序.方法是:通过使用简单的对象模型,如连接".命令"和记录"等,编写的应用程序可以连接到各种不同的数据源.
示例代码如下:
OleDbConnectionConn=new
OleDbConnection("Provider=Microsoft.Jet.OLEDB.IV.0,"+
"DataSource="+Server.MapPath("example.mdb"));
//connectionobject
Conn.Open();//openconnectionobject
OleDbCommandComm=newOleDbCommand("select*from
sample",Conn);
//querydatafromsample
OleDbDataReaderdr=Comm.ExecuteReader();
//Datareadobject
OleDbDataAdapterda=newOleDbDataAdapter("select*from
sample",Conn);
DataSetds=newDataSet();
Da.Fill(ds,"sample");
dgid.DataSource=ds.Tables["sample"].DefaultView;
//
dgid.DataBind();
但事实上,各种数据源的可编程性和功能是多方面的,和上面的方法使用共同点"是提供所有数据源.所以在这种方法中,利用数据源将丢失特定的选项,所以并不能在RDBMS中提供最好的方法访问和操作信息.
IV.II使用基本的界面
通过接口(IDbConnectionIDbCommandIDataReader等)代码将被封装在类中相当于特定的数据源,所以剩下的应用程序独立于后端数据库服务器并且装受它的影响.通常情况下,接口的主要工作是:定义连接字符串,打开和关闭连接,定义命令及相关参数,执行不同类型的命令,返回数据,对数据执行操作但不返回任何值,提供单向访问和只读访问.
IV.III准备专门的数据访问类
上面两种方法有I.定的局限性,I.个好的解决方案是提高抽象层次,也就是说,通过创建I.个特殊类来封装使用特定的数据提供者,并通过与其他层次数据结构来交换信息与应用程序无关,如:特定的数据源,输入数据集",对象集合等,在I.个特定的程序集中可以为每个支持的数据源创建I.个特殊的类,并在需要的情况下,加载应用程序根据配置文件.所以,如果想添加新数据源应用程序,您只需要通用接口定义规则来实现I.个新类的创建.
如果希望SQLServer作为数据源提供支持,你可以做以下的事情
定义:
namespaceMYEXAMPIE{
publicclassSample:IDbSample{
publicDataTableGetSam(){
StringConnStr=
ConfigurationSettings.AppSettings["ConnStr"];
using(SqlConnectionconn=newSqlConnection(ConnStr)){
stringcmdString="SELECTID,nameFROMSample";
SqlCommandcmd=newSqlCommand(cmdString,conn);
SqlDataAdapterda=newSqlDataAdapter(cmd);
DataTabledt=newDataTable("Sample");
Da.Fill(dt);
returndt;SS}}
publicDataTableGetSamID(stringID){……}
publicboolInsertSam(){……}
……//Andotherachievedmethod
}}
SampleclassrealizeIDbSampleinterface.Wecanonlycreateanewclassthatrealize
thisinterfacewhenneedtosupportnewdatasources.
Thistypeofinterfacecanbedefinedasfollowing:
namespaceCommon{
publicinterfaceIDbSample{
DataTableGetSam();
DataTableGetSamID(stringID);
boolInsertSam();}}
其他类型的数据源是类似于上面的代码,在这里我们不需要考虑不必要的细节.这种方法的优点是:高耦合度,容易改变,适合团队开发.耦和度的好处是容易测试.当测试的时候,我们可以模拟I.个数据访问层,独立测试业务逻辑,甚至可以模拟各种数据库错误,也可以单独测试数据访问层.
V总结
在网站建设时还有其他I.些通过ASP.NET访问数据库的方法.在.NET网络技术基础上I.般来说它是相似的.在实际开发过程中,会选择哪条路,我们应该根据需要灵活选择.此外,通过数据控制封装功能,ASP.NET网络可以更灵活的控制数据,并减少所需的代码访问和数据显示.从传统数据库到XML数据存储.各种数据源所需的数据都可以连接到这些控件上,可以处理I.些类似的格式,大大减少了数据驱动的应用程序开发的复杂性.目前ASP.NET网络是I.个Web数据库访问的理想选择.
参考文献
I.Sun,Z.-J.,Lu,L.:AnImplementofWebDatabaseAccessApplicationsBasedonMidwareTechnology.ComputerSystems&ApplicationsI.,VIIIVII–IX0(II00VIII)
IIMillett,S.:ProfessionalASP.NETDesignPatterns.Wrox(II0I.0)
IIIEvjen,B.,Hanselman,S.,Rader,D.:ProfessionalASP.NETIII.VSPI.edn.InC#andVB.Wrox(II00IX)
IVZhou,S.-X.:ResearchonDataAccessTechnologyBasedonADO.NETII.0.ComputerTechnologyandDevelopmentI.VIII,I.IVIV–I.IVVI(II00VIII)

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/lwqt/wxzs/69.html

好棒文