基于ASP.NET的数据库连接技术研究
基于ASP.NET的数据库连接技术研究
Authors:yyliao and zjtang
1 引言
数据库软件是日常生活中最重要的一类软件;在数据库软件中,经常需要对数据库进行插入、删除和查询等操作,在进行这些操作前需要先建立与数据库之间的连接。ASP.NET是Microsoft公司推出的用于编写动态网页的一项功能强大的新技术,是Microsoft公司动态服务器页面(ASP)和.NET技术的集合。ASP.NET具体强大的数据库操纵能力,被广泛应用于数据库软件开发,是一种流行的数据库开发技术。因此,研究ASP.NET下的数据库连接技术具有重要应用价值。一直以来,人们对数据库连接技术进行了大量的研究。文献[1]研究了ODBC的三层体系结构以及各组成部分的主要功能,利用ODBC实现应用程序与异构数据库的连接;文献[2]对Web系统中的数据库连接池技术进行了分析,提出了一种数据库连接池设计和实现方案;文献[3]介绍了PowerBuider中通过INI文件、ODBC配置和多数据库动态切换等三种数据库连接方法。
本文首先分析ADO.NET技术,然后对ASP.NET中建立数据库连接的关键技术进行研究,通过实例分析不同数据源下数据库连接的建立;将这些连接技术应用到软件开发中,能有效解决ASP.NET的数据库连接问题。
2 ADO.NET技术
ASP.NET中的数据库访问技术是通过ADO.NET[4-5]实现的。ADO.NET是ADO发展的产物,拥有比ADO更强大的功能,为用户提供了更好的数据访问解决方案。它能提供断开连接的数据访问;允许数据集中包含多个表及他们之间的关系;提供了一个记录导航范例,允许进行无序数据的访问;能够使用XML传送数据,同时还可以使数据穿越防火墙传递。
ADO.NET包括两个核心组件:DataSet和.NET数据提供程序。前者在断开式数据服务中起关键作用,可用于多种不同的数据源、XML数据以及管理应用程序本地的数据。后者是一组包括Connection、Command、DataAdapter、 DataReader对象在内的组件;提供了对数据操作和对数据快速、只进、只读访问的方法。其中,Connection对象提供对数据源的连接;Command对象执行数据库命令,以获得返回数据、修改数据、运行存储过程以及发送或检索参数信息等;DataAdapter使用Command对象在数据源中执行SQL命令,以便将数据加载到DataSet中,使对DataSet中数据的更改与数据源保持一致;DataReader是除DataSet之外的另外一种处理数据记录的方法,他能直接从数据库中按顺序读出各项数据记录,而且在内存中同时只保留一项记录。
ASP.NET文件访问数据库需要先引人ADO.NET命名空间,不同的数据源需要引入不同的命名空间,具体如表1所示。
表1 ADO.NET命名空间
ADO.NET命名空间 |
说明 |
System.Data |
提供ADO.NET架构的基类 |
System.Data.SqlClient |
针对Microsoft SQL Server数据源所设计的数据存取类 |
System.Data.OleDB |
针对OLEDB数据源所设计的数据存取类 |
System.Data.Odbc |
针对ODBC数据源所设计的数据存取类 |
System.Data.OracleClient |
针对Oracle数据源所设计的数据存取类 |
3 数据库连接
在一个ASP.NET页面文件对数据库进行查询、插入、更新等操作前,首先要建立应用程序与数据库的连接,然后再进行相应的操作处理。数据库连接建立的主要步骤有:
STEP 1 在页面文件中引入相关的ADO.NET命名空间;
STEP 2 设置数据库连接的参数;
STEP 3 根据连接参数,创建一个数据库连接对象;
STEP 4 执行数据库连接操作;
下面将通过实例对四种常见数据库连接的建立进行分析。
3.1 Microsoft SQL Server数据库连接
建立与Microsoft SQL Server数据库连接,首先需要正确设置连接参数,其中需要指明数据库服务器、连接的数据库、登录数据库的用户名和密码。此处所举例子假设数据库服务器是本机,因此参数是server=(local);连接的数据库是student,因此参数是database=student;用户名是超级用户sa,因此参数是uid=sa;登录密码是123456,所以参数是pwd=123456。以下是连接建立的步骤:
(1)命名空间的引人
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.SqlClient" %>
(2)设置连接参数
string MyConnString="server=(local) ;database=student;uid=sa;pwd=123456 ";
(3)创建数据库连接对象
SqlConnection MyConn=new SqlConnection(MyConnString);
(4)执行数据库连接
MyConn.Open();
3.2 Microsoft Access数据库连接
假设要连接的Access数据库名为student.mdb,其存放的目录与当前页面文件所在的目录相同;那么具体的连接步骤如下所示:
(1)命名空间的引人
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>
(2)设置连接参数
string MyConnString=" Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
MyConnString = MyConnString + Server.MapPath("student.mdb");
(3)创建数据库连接对象
OleDbConnection MyConn=new OleDbConnection(MyConnString);
(4)执行数据库连接
MyConn.Open();
3.3 Mysql数据库连接
Mysql是一个开源数据库,可以在Mysql官方网站上免费下载。它可以运行在Linux、Window、Unix等不同操作系统,其中在Linux操作系统下有着广泛的应用。假设ASP.NET网站运行在Window平台,而Mysql数据库则运行在Linux平台,本文以此为例通过Window平台的ODBC建立与Mysql的数据库连接。首先在Window平台上安装Mysql数据库的连接工具MyODBC,然后在Window下的ODBC管理器中建立一个名为student的数据源,并确认能连接上Linux服务器。如果以上步骤建立成功,那么ASP.NET文件中建立与数据库连接的步骤如下:
(1)命名空间的引人
<%@ import Namespace="System.Data"%>
<%@ import Namespace="System.Data.Odbc"%>
(2)设置连接参数
string MyConnString="dsn=student";
(3)创建数据库连接对象
OdbcConnection MyConn=new OdbcConnection(MyConnString);
(4)执行数据库连接
MyConn.Open();
3.4 Oracle数据库连接
Oracle数据库是大型数据库系统中常用的数据库,连接Oracle数据库需要指明数据源名称、登录数据库服务器的用户及密码等。假设数据源名称为student,用户名为system,密码为123456;于是可得到连接Oracle数据库的具体代码:
(1)命名空间的引人
<%@ import Namespace="System.Data"%>
<%@ import Namespace=" System.Data.OracleClient "%>
(2)设置连接参数
string MyConnString="Data Source=student;user=system;password=123456;";
(3)创建数据库连接对象
OracleConnection MyConn=new OracleConnection(ConnectionString);
(4)执行数据库连接
MyConn.Open();
4 结束语
本文对ASP.NET中的数据库连接技术进行了研究,总结了建立数据库连接的步骤,通过实例分析了几种常用数据库连接的建立,较好地解除了ASP.NET中建立数据库连接的问题。由于网站中的许多页面需要连接数据库,为了方便数据库连接参数的设置,可将连接参数存在网站的配置文件Web.config中,在网站首页把连接参数从配置文件中读取,存放在Session变量中,在需要使用连接参数时,只需要从Session变量读取即可;其次,当使用完一个数据库连接后,一定要将它关闭,具体方法为MyConn.Close();因为当连接超出作用域后,不会自动关闭。如果不关闭连接,设计出来的应用程序将不能有效地处理庞大数据的用户访问。