基于ADO.NET的数据库访问技术研究与应用
2016-07-22成孝俊
成孝俊
摘要:随着网络的发展,越来越多的应用程序需要通过网络进行数据传递,大大改变了应用程序的设计方式。为此 Microsoft结合.NET框架为数据访问提供了全新的ADO.NET数据访问模型。该文介绍了ADO.NET的体系结构与ADO.NET数据访问模式,并通过代码示例简要说明了ADO.NET环境下基于连接的数据访问模式。
关键词:ADO.NET;数据访问模式;数据库访问
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)16-0001-02
ADO.NET.NET Framework以目前业界认可与广泛使用的XML为基础,为.NET开发人员提供了一组类。通过这些类,程序开发人员可以使用一致的方法来访问各种数据源,包括SQL Server数据库、Oracle数据源、ODBC数据源、OLE DB数据源以及XML文件等。
ADO.NET作为一种全新的、功能强大的数据库访问技术,它可作为桥梁将应用程序的用户界面与后台的数据库联系起来,前台的应用程序可以通过ADO.NET数据库访问技术连接到不同类型的数据源,进而对数据源中的数据进行检索、插入、修改和删除等操作,还可以只进只读的方式快速访问数据库中的数据。系统用户与应用程序之间进行的交互可以概括为如图1所示的过程。
1 ADO.NET数据库访问技术的体系结构
ADO.NET数据库访问技术主要由数据提供程序(.NET Framework Data Provider)和数据集(DataSet)两个核心组件组成。
1.1 数据提供程序.NET Framework Data Provider
.NET Framework数据提供程序由四个核心类组成,分别是Connection 类、Command 类、DataReader 类和DataAdapter 类。Connection对象负责管理与SQL Server数据库的连接;Command对象负责执行SQL命令并返回执行结果;DataReader对象表示从数据源中获取的只进只读的数据流;DataAdapter对象可以隐藏应用程序与Connection对象、Command对象交互的具体细节,完成DataSet和数据源之间的数据交换。
.NET Framework数据提供程序通过建立到数据源的连接、执行相关的SQL操作命令检索数据库中的数据。用户可以直接处理从数据库源中检索到的数据,也可以将检索到的数据放入DataSet对象中进行处理。DataAdapter对象通过.NET Framework数据提供器与DataSet建立联系,从而使DataSet对象可以从多个不同的数据源中获取数据。
1.2 数据集DataSet
数据集作为ADO.NET技术中的又一核心组件,通过它可以实现以断开连接的模式对数据库进行访问。它是一个与数据源无关的内存数据表示方法,用于在内存中高速缓存关系型数据。数据集好比是一个简化后的关系数据库,其中也包含各种数据库对象,比如数据表对象、数据行对象、数据列对象、表关系对象等。它是实现断开连接的环境下进行数据库访问的核心组件。
2 ADO.NET数据访问模式
ADO.NET提供了基于连接的访问和断开连接的访问模式。
2.1 基于连接的访问模式
在基于连接的访问模式中,应用程序对数据库中的数据进行检索、增删改等操作时,应用程序需要始终保持与数据源的连接。在连接的环境下,通过直接执行命令对象的SQL命令来对数据库进行操作。当使用SQL命令直接操作数据库时,在执行SQL命令之前必须先手动打开连接对象,命令执行完成后还须手动关闭连接,命令的执行依赖于与数据库的连接。
2.2 断开连接的访问模式
在断开连接的环境中,当应用程序从数据源中读取数据时,DataAdapter对象会自动建立到数据源的连接;DataAdapter对象获取数据并填充到数据集之后,就自动断开到数据源的连接;当应用程序向数据源中保存数据时,DataAdapter对象会再次建立到数据源的连接,将数据集更新后中的数据同步更新到数据源,并在数据保存之后自动断开到数据源的连接。
DataAdapter 对象作为数据源和DataSet 对象之间进行数据交互的桥梁,它负责通过连接对象和命令对象与不同类型的数据源打交道并将检索出的数据传递给DataSet对象,而DataSet对象只负责对接收到的数据进行处理,处理好的数据再通过DataAdapter 对象更新到数据源。
3 使用C#对SQL Server数据库进行访问
本实验以SQL Server 2008 Express作为数据源,使用C#语言在Visual Studio 2010平台下进行数据库访问的测试,访问的数据数据库名称为testDB。在System.Data.SqlClient命名空间下,提供了ADO.NET访问SQL Server数据源的四个核心类:SqlConnection 类、SqlCommand 类、SqlDataReader 类和SqlDataAdapter 类。
3.1 连接数据库
访问数据库首先需要建立到数据库的连接。通过指定的连接字符串创建SqlConnection对象可以实现数据库连接操作。所谓连接字符串,就是这样一组被格式化的键值对,它告诉ADO.NET数据源在哪里,需要什么样的数据格式,提供什么样的访问信任级别以及其他任何包括连接的相关信息。
连接字符串中常用属性说明如下:
Data Source指定需要连接的服务器名称,如果使用的SQL Server是Express版本,则需要在服务器名后加\SQLEXPRESS(忽略大小写);
Initial Catalog:用来指定需要连接使用的数据库名称;
User ID和Password分别表示数据库服务器账号和数据库服务器密码;
Integrate Security用来指定验证方式,当为false时,将在连接中指定用户ID和密码;当为true时,将使用当前的Windows帐户凭据进行身份验证。
下面的代码示例演示如何创建一个连接对象,服务器为本地服务器,访问的数据库为test,验证方式为集成验证。
SqlConnection sqlConn = new SqlConnection("Data Source=.\SQLEXPRESS;Initial Catalog=testDB;Integrated Security=true");
3.2 检索并显示数据
有两种方式对朋数据库中检索出的数据记录进行操作:一种是通过DataReader对象对检索出的数据直接进行访问;另一种则是通过DataAdapter对象和DataSet对象配合进行操作。
1)使用DataReader对象访问检索的数据
为了能够检索出SQL Server数据库中的数据,需要借助于SqlCommand对象。通过指定连接字符串和SQL命令就可以创建一个SqlCommand对象,该对象提供ExecuteNonQuery、ExecuteReader、ExecuteScaler等三种不同的执行方法。下面的代码演示了基于上文中的连接对象创建一个SqlCommand对象以实现数据查询。
4 结束语
ADO.NET作为一种全新的、简单但高效的数据库访问技术,有着鲜明的特点,比如具有执行速度快、编程方式灵活、功能强大、使用方便等等。使用ADO.NET数据访问技术,能够以高效快捷的方式对绝大部分数据源进行访问,满足了大多数用户的需求,是.net应用程序和后台数据库之间的一座重要桥梁。
参考文献:
[1] 张牧笛, 罗驱波, 白静宜. ADO.NET数据访问模型研究[J]. 微计算机信息, 2008(6).
[2] 高俊. ADO.Net数据访问技术分析[J]. 河南科技, 2011(11).
[3] 张伟民, 王亚林. ADO.NET访问数据库的技巧探讨[J]. 微计算机信息, 2011(11).
[4] 徐照兴, 王斌. ADO.NET访问数据库的方法及步骤[J]. 中国科技信息, 2009(22).