摘 要:数据库访问技术是应用软件系统开发中非常重要的技术之一。以往应用软件对数据库的访问实现复杂,访问效率低。文中介绍了一种应用简单且数据库访问效率较好的数据库访问技术ADO.NET技术。详细介绍了ADO.NET数据库访问技术的对象模型组成,访问数据库的原理及一般操作步骤,最后通过一个具体的ASP.NET网站开发实例来说明了其应用。应用实例显示,ADO.NET数据库访问技术的应用简化了开发中数据库访问技术,提高了访问效率,同时还提高了数据访问的安全性。通过对此技术的研究与应用,希望能给相关的软件开发人员及数据库访问技术人员提供借鉴与参考。
关键词:ADO.NET;数据库访问技术;对象模型;数据库服务器
中图分类号:TP311.1 文献标识码:A
1 引言(Introduction)
数据库访问技术是应用软件系统开发中至关重要的技术之一,过去软件开发中实现数据库访问的方法非常复杂,访问数据库的效率较低。随着社会信息化的不断发展,计算机及网络技术的不断进步,数据库信息化存储技术已成为当今对大规模信息化数据组织及管理的重要手段与软件系统基础,同时也是信息化网络管理系统开发技术的基础。由此可见,数据库访问技术在软件开发中显得特别重要,几乎大部分应用系统的开发都离不开数据库访问技术。下面结合本人多年来的软件开发与设计经验,探讨一下ADO.NET数据库访问技术[1]在ASP.NET开发中的应用。
2 ADO.NET技术简介(ADO.NET technology
introduction)
ADO.NET(ActiveX Data Object.NET)是由微软公司开发用于方便开发人员在开发过程中访问数据库的一套组件模型,比以前的ADO数据访问模型更灵活,更能满足广泛的数据访问控制要求,同时也提供了更多的功能。ADO.NET技术模型不仅为.NET程序员公开提供了一组方便访问数据库的组件,同时也提供了方便开发人员创建分布式共享数据应用程序需要使用的一组组件模型。ADO.NET被嵌套在.NET平台的Framework中,它提供了对关系型数据库、XML数据库[2]及应用程序数据库等多种类型数据库的访问技术。ADO.NET应用范围广泛,不仅可以应用于桌面应用程序的开发,还可以应用于Web应用程序[3]的开发及其他应用程序的开发。ADO.NET与以往的数据访问技术最大的不同之处在于:它支持应用程序与数据库以完全非连接的数据缓存的方式交互,实现离线操作数据。
3 ADO.NET数据库访问技术(ADO.NET database
access technology)
3.1 ADO.NET数据库访问技术分析
ADO.NET组件模型中包含了有关数据库访问、数据库操作及与数据库访问操作有关的一组对象模型,是.NET Framework的重要组成部分。ADO.NET组件模型以.NET的类库形式呈现给用户使用,主要包括两个核心组件:.NET DataProvider(数据提供者)和DataSet(数据集)对象。
.NET Data Provider是一组为数据处理及快速循序、只读访问数据库而设计的组件,主要提供方便应用程序连接数据库的功能;提供以SQL语句的形式操作数据库,且能以多种形式把查询到的结果填充到DataSet(数据集)中。
DataSet数据集对象是ADO.NET组件模型中支持断开式和分布式操作数据的核心对象。DataSet对象是驻留计算机内存中临时存取的数据库。DataSet的最大特点是提供始终保持与数据库一致的关系型编程模型且独立于任何数据库的数据访问而设计。DataSet对象的主要功能包括:用DataTable和Data Relations对象来存放由.NET Data Provider对象发生过来的数据库访问执行的结果集,以供应用程序访问;把应用程序对数据库的执行操作结果更新到数据源数据库中。DataSet数据集对象能在与数据源断开的情况下管理和储存数据,对于大量访问数据库的场合来说这一点是非常实用的,因为这样不仅可以减轻数据库服务器访问的压力,同时还起到保护数据库服务器的作用。ADO.NET组件的体系结构如图1所示。
图1 ADO.NET体系结构
Fig.1 ADO.NET architecture
3.2 ADO.NET数据库访问技术实现原理
从ADO.NET体系结构图可以看到,ADO.NET组件对象模型由Connection、Command、DataReader、DataAdapter和DataSet五个数据库连接及操作对象组成。它们分工协作,完成对数据源的访问及操作任务。其中,Connection对象主要负责连接各种类型的数据源,Command对象主要用于生成并执行应用程序所需的SQL语句,DataReader对象负责循序读取执行SQL语句后的数据库中的数据,DataAdapter对象负责将执行Command对象的SQL语句得到的数据库结果搬运到DataSet中,DataSet对象负责存取和更新数据源数据。
通过对ADO.NET数据库访问技术原理图可知,ADO.NET组件模型是连接应用程序与数据库的桥梁,如图2所示为ADO.NET数据库访问技术原理结构示意图。在.NET应用程序开发中,应用程序如果要访问数据库就需要使用ADO.NET组件,然而几乎所有应用程序都离不开数据库的访问,可见在.NET应用程序开发中,ADO.NET数据库访问技术非常重要。
3.3 ADO.NET数据库访问技术实现的一般步骤
使用ADO.NET数据库访问技术访问数据库进行软件系统开发过程中,尽管ADO.NET组件模型包括的对象较多,访问数据库的技术灵活复杂,但也不是没有规律可循。在软件开发中利用ADO.NET访问数据库操作的一般步骤如下:
第一步:创建ADO.NET数据库连接对象(Connection对象)开启与数据源的连接。
第二步:在第一步中建立的数据库连接对象基础上,再创建一个执行数据库操作的命令对象(Command对象)以执行指定的操作。
第三步:执行数据库操作命令对象得到操作结果,通过使用DataReader对象采用与数据库连接的模式来取得执行的命令的相应结果,或创建并执行数据适配器对象(DataAdapter对象),将执行数据库操作命令对象得到操作结果填充到数据集对象中,应用程序再从数据集对象中获取相应数据结果。
第四步:应用程序对数据处理完毕后,使用Command命令对象或DataAdapter对象将处理结果更新到数据源中。
第五步:释放ADO.NET对象模型中各种数据提供者所使用的对象资源,断开数据库连接。
图2 ADO.NET数据库访问技术原理
Fig.2 ADO.NET database access technology principle
4 ADO.NET数据库访问技术的应用(Application
of ADO.NET database access technology)
众所周知,支持离线访问数据库是ADO.NET数据库访问技术的一大优势,这一点对于Web数据库的访问最为明显,因为在ASP.NET网站的页面中采用ADO.NET数据库访问技术使得页面的安全性及执行效率都有较大提高。下面结合某学院校务公开网站中的新闻添加模块功能为例来详细阐述ADO.NET数据库访问技术在ASP.NET网站开发技术中的应用[4]。新闻添加模块功能的实现是在系统后台添加单击添加新闻按钮响应事件时,则向数据源里面添加一条新闻信息记录。后台程序语言使用C#,数据库服务器使用SQL Server 2008,数据库名称为SWEB,NEWS为SWEB数据库存储记录表,表中字段包括ID(列标志)、XWBT、XWLB、XWLY、XWTM。
在ASP.NET网站的系统文件web.config中配置数据库连接字符串[5]如下:
在相应asp.net网页的后台创建数据库连接类:
public class connection
{
public static SqlConnection getconnection() //创建连接函数
{
string connectionstringxinwen=WebConfigurationManager.ConnectionStrings[webConnectionString].ConnectionString;
If(string.IsNullOrEmpty(connectionstringxinwen)
throw new Exception(查找连接字符串失败!);
SqlConnection conn=new SqlConnection(connectionstringxinwen)
return conn;
}
}
protected void btnenter_Click(object sender,EventArgse)//添加新闻按钮函数定义
{
string XWBT=TxtBox1.Text.Tostring().Trim();
string XWLB=DropDownList.SelectedItem.Text.Tostring();
string XWLY= TxtBox2.Text.Tostring().Trim();
string XWTM=Editor.Text; //使用了网页编辑器
SqlConnection conn=connection.getconnection();//创建数据库连接对象
conn.open();//打开连接的数据库
SqlCommand cmd=new SqlCommand(〝insert into news-values(@XWBT,@XWTM,@XWLB,@XWLY),conn); //创建数据库操作命令对象执行插入操作
cmd.Parameters.AddWithValue(@XWBT,XWBT);
cmd.Parameters.AddWithValue(@XWLB,XWLB);
cmd.Parameters.AddWithValue(@XWLY,XWLY);
cmd.Parameters.AddWithValue(@XWTM,XWTM);
cmd.ExecuteNonQuery();//执行插入操作命令
Response.Write();
conn.close()// 断开与数据库的连接
conn.Dispose();//释放各种数据提供者对象资源
}
5 结论(Conclusion)
数据库访问技术是应用程序开发中一项烦琐且复杂的操作,尤其在网站开发中更显重要。ADO.NET数据库访问技术的提供,成功实现了离线状态下客户端数据访问技术,这一点使得软件开发人员能以更加有效的方式设计开发出更高效的数据库应用程序系统。ADO.NET数据库访问技术使用灵活,要想在开发过程中能灵活运用,必须多加实践多应用。
参考文献(References)
[1] 应毅,毛宇光,刘正涛.基于ADO.NET技术的Web访问数据库 研究与实现[J].计算机与现代化,2005(04):64-67;101.
[2] 纪兆辉,胡孔法.基于ADO.NET和XML实现数据交换[J].微计 算机信息.2009(18):265-266;230.
[3] 蒋薇,等.基于ADO.NET数据访问技术的研究和应用[J].微计 算机信息,2010(10):141-143.
[4] 张岚,高建芳.ADO.NET技术及其实践应用[J].内蒙古科技与 经济,2012(10):40-42.
[5] 朱子江,胡毅,刘东.基于ADO.NET的数据库连接池技术的优 化研究[J].计算机与现代化,2011(07):168-171.
作者简介:
方开红(1978-),男,硕士,讲师.研究领域:计算机应用技 术,网络视频传输技术及软件开发与设计.