基于ado.net技术访问sql server数据库的编程实现

基于ado.net技术访问sql server数据库的编程实现

ID:10059493

大小:39.00 KB

页数:14页

时间:2018-05-23

上传者:U-3336
基于ado.net技术访问sql server数据库的编程实现_第1页
基于ado.net技术访问sql server数据库的编程实现_第2页
基于ado.net技术访问sql server数据库的编程实现_第3页
基于ado.net技术访问sql server数据库的编程实现_第4页
基于ado.net技术访问sql server数据库的编程实现_第5页
资源描述:

《基于ado.net技术访问sql server数据库的编程实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

基于ADO.NET技术访问SQLServer数据库的编程实现摘要:SQLServer是当前较为常用的数据库管理系统之一,具有速度快、功能强、易使用等特点,它主要解决数据的存储与管理问题。为了更好地实现对SQLServer数据库的访问,提出了新的数据库访问技术即ADO.NET。在此介绍了ADO.NET的核心组件和体系结构,阐述了利用ADO.NET访问数据库的2种不同方式,结合实例展示了利用ADO.NET访问SQLServer2005的基本过程,并给出了关键代码,实现了对数据的有效管理。关键词:ADO.NET;数据库访问;SQLServer;数据库管理中图分类号:TN911⁃34;TP311文献标识码:A文章编号:1004⁃373X(2014)08⁃0095⁃04ProgrammingofaccessingSQLServerdatabasebasedonADO.NETJIANGLing,YANGPing⁃li,YangMei,YUANYuan(NorthwestInstituteofNuclearTechnology,Xi’an710024,China)14 Abstract:Beingoneofthemostcommonly⁃useddatabasemanagementsystems,SQLServerhasthecharacteristicsofhighspeed,strongfunctionandeasytouse,andcansolvetheproblemsofdatastorageandmanagement.InordertoachieveabetterwayforaccessingSQLServer,ADO.NETcalledasanewdatabaseaccesstechnologyisproposed.ThecorecomponentsandthearchitectureofADO.NETaresimplyintroduced.TwodifferentmodestoaccessdatabaseusingADO.NETareexplained.ThebasicprocessofusingADO.NETtoaccessSQLServerispresentedwithaninstanceandthekeycodesarealsogiven.Thegoaltoefficientlymanagedatawasachieved.Keywords:ADO.NET;databaseaccess;SQLServer;databasemanagement0引言14 数据库技术是计算机科学技术中发展最快的领域之一,也是应用最广泛的技术之一,它已成为计算机信息系统与应用系统的核心技术和重要基础。目前,数据库系统已经广泛应用于各个领域,例如管理信息系统、办公自动化系统、图书情报检索系统等。数据库系统的特点主要有以下几个方面[1]:(1)数据结构化。数据的共享性高,冗余度低,易扩充;(2)数据独立性高。数据由数据库管理系统(DBMS)统一管理和控制。随着应用程序的发展演变,越来越多的应用程序需要通过网络传递数据。Microsoft结合.NET框架为数据访问提供全新的编程模型――ADO.NET。通过ADO.NET不仅能够使应用程序链接到数据源,检索、操纵和更新数据,而且能够实现对非关系数据库的访问。本文主要介绍在VisualC#.NET中如何利用ADO.NET进行数据访问,在数据库的选用上,采用了微软公司的SQLServer2005。1ADO.NET的体系结构ADO.NET是.NETFramework提供给.NET开发人员的一组类,以目前业界认可与广泛使用的XML为基础,提供一致的方法来访问各种数据源和完善的数据访问服务,包括MicrosoftSQLServer数据库、ODBC、OLEDB数据源、Oracle数据源以及XML等[2]。14 ADO.NET是一种全新的、强大的数据库访问技术[3]。它可将系统前端的用户界面和后台数据库联系起来,应用程序可以通过ADO.NET来链接各种数据源,检索、插入、修改和删除数据源中的数据以及以快速、只读、只进的方式访问数据[4]。用户和系统之间一次典型的交互过程如图1所示。与传统的访问Web数据库的方法相比较,ADO.NET数据访问技术具有2个突出的优点:一是紧密集成XML作为数据传输标准,使得ADO.NET能够更加灵活地访问各种不同类型的数据;二是采用中断式访问模式,应用程序只是在需要访问或者更新数据时才会链接到数据库,一旦完成后就立即断开,完成此任务的就是ADO.NET的2个核心组件。图1ADO.NET的数据访问过程ADO.NET提供2个核心组件:.NETFramework数据提供程序和DataSet[5]。ADO.NET的体系结构如图2所示。.NETFramework数据提供程序用于链接数据源、执行SQL命令以及检索数据,检索到的数据既可以直接处理,也可以放入DataSet对象中。.NETFramework数据提供程序通过在DataAdapter对象和DataSet之间建立联系,使DataSet对象可以获取来自多个数据源的数据。数据集DataSet是一个与数据源无关的内存数据表示方法,用于高速缓存关系型数据。它像是一个简化的关系数据库,可以包含数据表、数据列和数据行,以及表与表之间的关系,并且完全是在脱机模式下进行操作。图2ADO.NET的体系结构14 1.1NETFramework数据提供程序.NETFramework数据提供程序包括Connection对象、Command对象、DataReader对象和DataAdapter对象。(1)Connection对象:Connection管理与SQLServer数据库的链接,用于链接MicrosoftSQLServer7.0版或以上版本。Connection对象是通过ConnectionString属性的设置来链接数据库。(2)Command对象:在ADO.NET中,一般使用Command对象来执行SQL命令并从数据源中返回结果。(3)DataReader对象:用于从数据源中获取只读的、单项的数据流。(4)DataAdapter对象:是DataSet和数据源之间的桥梁,它可以隐藏和Connection对象、Command对象沟通的细节,完成DataSet和数据源之间的数据交换。1.2DataSet组件(1)DataSet包含Tables(表)集合和Relations(关系)集合。Tables集合由DataTable对象组成,而Relations集合由DataRelation对象组成。  (2)在DataSet的Tables集合中,每个DataTable对象又包含Rows(行)集合、Columns(列集合)集合、ChildRelations(子关系)集合和ParentRelations(父关系)集合。14 因为DataSet的结构和关系型数据库类似,所以可以像访问关系型数据库那样访问DataSet。可以在DataSet内添加、删除表,在表中使用Select方法查看数据、使用Delete方法删除数据等。同时,DataSet可以看作由集合组成,因此还可以以集合的方法访问DataSet中的数据。另外,DataSet还能够完全看作XML格式的数据,对DataSet可以按照XML数据的形式进行访问。对于不同的应用需要ADO.NET提供了2种模式来访问数据源中的数据:使用DataReader对象进行基于链接的访问和使用DataAdapter对象进行非链接的访问[6]。下面对2种访问模式进行分析和比较。1.3基于链接的访问模式基于链接的访问模式会占用一个数据库链接,然后读取数据。它是通过DataReader对象来实现的,DataReader对象在已经建立的数据链接的基础上,提供对数据源的单向的、只读的数据流。由于DataReader可以顺序地处理从数据源返回的结果,而且不在内存中缓存,因此DataReader适合从数据源中检索大量的、不需要进行更新操作的数据。1.4非链接的访问模式14 非链接的访问模式是以Dataset为中心的数据访问模式。Dataset中的数据是与数据库断开链接的[7]。一旦将结果存储在Dataset之后,Dataset和数据库之间便不再有链接。对Dataset内容所做的修改不会直接影响到数据库。它的优点就在于处理非链接数据时是不需要始终与数据库链接。在VisualC#中利用ADO.NET访问SQLServer2005的基本过程。首先,使用SQLServer2005建立一个数据库,假设该数据库名为yjsCheck。在使用ADO.NET之前,需要先把有关的命名空间导入进来[8]。即将下面的代码加入到要进行数据库操作的C#程序中,其具体位置应该在类声明之前。usingSystem.Data.Sql;usingSystem.Data.SqlClient;usingSystem.Data.SqlTypes;1.5链接数据库建立数据库链接是最基本的数据库操作任务之一,一般情况下可以使用ADO.NET的Connection对象来完成链接数据库的操作。下面的代码示例演示了使用SqlConnection对象如何创建和打开数据库链接。SqlConnectionsqlConn=newSqlConnection(”DataSource=abcSQLSERVER2005;initialcatalog=yjsCheck;integratedsecurity=SSPI”);sqlConn.Open();其中,“DataSource=abcSQLSERVER2005”为链接的数据源名称,“initial14 catalog=yjsCheck”为链接的数据库名称,“integratedsecurity=SSPI”表示使用Windows集成安全身份认证。链接数据库并完成了对数据库的操作之后,必须关闭与数据库的链接。可以使用Connection对象的Close()或Dispose()方法来完成。1.6检索并显示数据从数据库中检索数据记录一般使用下面的2种方式:一种是通过DataReader对象直接访问;另一种则是通过数据集DataSet和DataAdapter对象访问。使用ADO.NET的DataReader对象能从数据库中检索数据。检索出来的数据形成一个只读只进的数据流。DataReader对象的Read方法可以前进到下一条记录。代码如下:stringmyConn=“DataSource=abcSQLSERVER2005;initialcatalog=yjsCheck;integratedsecurity=SSPI”;stringstr=“selectHostIP,Unit1fromInformation“;//查询Information表中的HostIP字段和Unit字段SqlConnectionsqlConn=newSqlConnection(myConn);//使用Connection对象创建和数据库的链接SqlCommandsqlComm=newSqlCommand(str,14 sqlConn);//创建SqlCommand对象并执行查询的SQL命令sqlConn.Open();//打开链接SqlDataReadermyReader;//创建SqlDataReader对象myReader=sqlComm.ExecuteReader();while(myReader.Read())//循环遍历SqlDataReader中的每条记录,直到完成{……对数据库操作代码}myReader.Close();//关闭SqlDataReader对象sqlConn.Close();//关闭链接从数据库中读取记录的另一种方法是使用DataSet对象和DataAdapter对象。关键步骤如下:(1)创建数据库的链接;(2)构造包含查询语句的SqlDataAdapter对象;(3)调用Fill方法把数据填充到DataSet中;(4)关闭链接。代码如下:stringmyConn=“DataSource=abcSQLSERVER2005;initialcatalog=yjsCheck;integratedsecurity=SSPI”;14 stringstr=“selectHostIP,Unit1fromInformation“;//查询Information表中的HostIP字段和Unit字段SqlConnectionsqlConn=newSqlConnection(myConn);//使用Connection对象创建和数据库的链接SqlDataAdaptermyDataAdapter=newSqlDataAdapter(str,sqlConn);//创建SqlDataAdapter对象sqlConn.Open();DataSetds=newDataSet();//创建DataSet对象myDataAdapter.Fill(ds,“Information”);//SqlDataAdapter对象通过Fill方法把数据添加到DataSet中{……对数据库操作代码}sqlConn.Close();14   当需要确定应用程序应使用DataReader还是应使用DataSet时,应考虑应用程序所需的功能类型。DataSet用于组合并关联来自多个源的数据,对数据执行大量的处理,而不需要与数据源保持打开的链接,从而将该链接释放给其他客户端使用。如果不需要DataSet所提供的功能,则可以使用DataReader以只进只读方式返回数据,从而提高应用程序的效率。1.7添加和删除数据(1)添加操作代码如下:stringmyConn=“DataSource=abcSQLSERVER2005;initialcatalog=yjsCheck;integratedsecurity=SSPI”;stringstr=“insertintoInformation(Keywords,Degree)values(@keywords,@degree)”;//SQL语句的插入操作SqlConnectionsqlConn=newSqlConnection(myConn);SqlCommandsqlComm=newSqlCommand(str,sqlConn);sqlComm.Parameters.Add(newSqlParameter(”@keywords”,SqlDbType.NVarChar,100));//使用SqlCommand对象的Parameters集合填充命令的值sqlComm.Parameters[“@keywords”].Value=textBox1.Text;sqlComm.Parameters.Add(new14 SqlParameter(”@degree”,SqlDbType.Float));sqlComm.Parameters[“@degree”].Value=textBox2.Text;sqlConn.Open();try{sqlComm.ExecuteNonQuery();}catch(SqlExceptionex){MessageBox.Show(”有误:”+ex.Message.ToString());}//异常处理sqlConn.Close();(2)删除操作代码如下:将添加操作中的语句:stringstr=“insertintoInformation(Keywords,Degree)values(@keywords,@degree)”;//SQL语句的插入操作改为:stringstr=“deletefromInformationwhereKeywords=@keywords”;//SQL语句的删除操作其他语句相同。2结语14 ADO.NET为数据库的访问提供了一种全新的、简单高效的数据库访问技术[9],具有执行速度快,编程方式灵活等优点[10],功能强大,使用方便。它能够对绝大部分数据源进行高效的访问,是应用程序和数据库之间的一座重要桥梁,本文对从事数据库开发的技术人员有一定的借鉴作用。参考文献[1]萨师煊,王珊.数据库系统概论[M].北京:高等教育出版社,2002.[2]申朝阳,宋颜浩.ASP.NET与数据库技术高级指南[M].北京:中国水利水电出版社,2005.[3]张奇,李律松,卫建伟,等.VisualC#数据库项目案例导航[M].北京:清华大学出版社,2005.[4]路红武.基于.NET企业信息资源管理系统的设计与实现[J].计算机与现代化,2005,18(6):21⁃23.[5]李律松,陈少刚,沈刚,等.VisualC#数据库高级教程[M].北京:清华大学出版社,2005.[6]周晓娟.基于ADO.NET的数据库访问技术研究[J].现代商贸工业,2009(24):293⁃295.[7]SCEPPADavid.ADO.NET2.0技术内幕[M].北京:清华大学出版社,2007.[8]ROBINSONSimon,NAGELChristian.C#高级编程[M].李敏波,译.3版.北京:清华大学出版社,2005.14 [9]李成楠,杨晶.基于ADO.NET数据库访问技术浅析[J].科技创新导报,2012(12):33⁃35.[10]桑国珍.数据库访问技术的研究[J].现代电子技术,2010,33(20):83⁃85.14

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭