基于C#的ADO.NET访问数据库技术
来源:汇意旅游网
维普资讯 http://www.cqvip.com 。数据库及信息管理。.。.。. 本栏目责任编辑:闻翔军 基于C{6}的ADO.NET访问数据库技术 李岚。朱红高 (湖北职业技术学院计科系,湖北孝感432000) 摘要:ADO.NET是微软针对ADO的缺陷而重新设计的一种全新的数据库访问模型.它支持工业标准.集合了所有用于数据处理的 类。文章论述了ADO.NET的结构和其中的主要对象,探讨了利用ADO.NET技术访问数据库的方式。同时对如何绑定DataGrid控件、 TextBox控件进行了介绍。 关键词:C≠≠;ADO.NET:访问;数据库;技术 中图分类号:TP301 文献标识码:A 文章编号:1009—3044(2007)07-20028一O2 LI Lan,ZHU Hong—gao Technology of Accessing Database with ADO.NET Based on C# (Hubei CoHege of Science&Technology,Xiaogan 432000,China) Abstract:DO.ANET iS a kind of brand-new database access mode1 w ch Microso8 redesigns tO the defeCt of ADO.it supports the indus一 al standard.has assembled all classes which iS used in data processings.This thesis has described the structure of ADO.NET and main obiects a- mong them,the way of he dattabase access in using ADO.NET technology.And also introduce the dynamic data binding techniques. Key words:C≠≠:ADO.NET:Accessing Database;Technology 1引言 随着因特网技术的迅速发展和普及,以及当前网络对数据资 源的强烈需求,将WEB服务器与数据库技术相结合已成为近年 来因特网应用的热点之一。目前流行的B/S(Browser/Server)三层 所连接到的数据库和连接期间用到的字符串。Connection对象的 方法比较简单:打开和关闭连接.以及改变数据库和管理事务。 Command对象代表在数据源上执行的一类SQL语句或一个存储 过程,当链接到数据库之后。可以使用Command对象对数据库进 行操作。DataReader是一种快速、低开销的对象,用于从数据源中 获取仅转发的、只读的数据流,DataReader不能用代码直接创建。 只能够通过调用Command对象的ExecuteReader方法来创建。 Data Adapter是功能最复杂的对象,它是Connection对象和数据 集之间的桥梁,它的主要作用是在数据源和DataSet对象之间传 递数据,同时也可以对底层数据保存体进行数据的添加、删除或 修改操作,它包含4个不同类型的command:SeleetCommand.In. sertCommand,UpdateCommand和DeleteCommand,数据集是记录 体系结构,能充分共享Web资源,使用方便、安全高效,也充分利 用了数据库系统中宝贵的信息资源。 Microsotf.NET是支持新一代互联网的系统平台,.NET Frame— work是、NET平台的基础.它提供集成开发环境。它使用VB.NET、 C#或Jseript.NET程序设计语言来实现三层体系结构中的中间层 (业务逻辑层)设计,即使用ASP.NET动态服务器页面完成表示层 的设计…。.NET开发平台创建的应用程序在通用语言运行环境 底层CLR(Common Language Runtime.简称CLR1的控制下运行。 它用来加载应用程序.确认它们可以没有错误地执行,进行相应 的安全许可验证,执行应用程序,然后在运行完成后将它们清除。 类库集提供了使应用程序可以读写XML数据、在因特网上通信、 访问数据库等代码【2]。 ADO.NET是.NET框架中用于数据访问的组件。ADO.NET与 原来的ADO结构相比有一些提高,其对象模型与早期的ADO版 本不同.一方面,RecordSets不再存在,Micmsoft创建了支持断开 在内存中的数据,可以将其看成是一个缓冲区,它可以同时存储 多张数据表,也可以将数据表之间的关联保存至本地端的主机, 并加以浏览、编辑或是排版等。DataSet是XML和ADO结合的产 物,它的重要特点就是与数据库或SQL无关,只是简单的对数据 表进行操作、交换数据或是将数据绑定到用户界面上。 AD0NET 数据捷用程序 数据连接和操作的DataAdapter和DataSet类,不必一直连接到数 据库.允许更大的可缩放性,因此应用程序可以使用较少的资源。 另一 方面通过ADO.NET的连接机制,数据库直接可以被不同的 应用程序使用。因此.减少了连续连接到数据库和断开连接的需 要.可以节省很多时间,提供了更好的协调工作能力与性能,是对 以往以AetiveX技术为基础的ADO的一个革命性的改进。 一 1 #l . . 目# ll —— : l苴 性 l 2 ADO.NET的对象模型 ADO.NET的类由两个部分组成:数据提供程序(Data Provider) 和数据集。数据提供程序负责与物理数据源的连接,数据提供程 序组件是数据源特有的。.NET框架包含两种数据提供程序:一种 是 SQL Server数据提供程序,另一种为一般的数据提供程序,它 可以与任何一个0LE DB数据源通信。数据集代表实际的数据。 这两个部分都可以和数据使用程序通信.如web窗体和Windows 窗体 图1展示了ADO.NET对象模型中的主要对象。 Connection对象负责与数据之间的物理连接。若要访问数据 库,都需要先建立到数据库的链接,它可以由我们自己生成也可 以由其它对象自动生成,它的属性决定了数据提供程序、数据源 图1 ADO.NET对象模型 3利用ADO.NET访问数据库 对数据库进行操作,首先 必须与数据库取得联系,接着 发出SQL命令或存储过程告诉 数据库打算进行什么样的工 作.最后由数据库返回所需的 数据记录。整个结构如图2所 示: 3.1使用对象连接数据库 主要通过Connection对象 图2数据库连接过程 收稿日期:2007-03-30 作者简介:李岚,女,讲师,主要研究方向:计算机软件;朱红高,男,讲师,主要研究方向:图形图像。 电脑知识与技术 维普资讯 http://www.cqvip.com 本栏目赍任编辑:闻翔军 数据库来完成。以连接SQL数据库为例,首先建立一个Connec. tion的对象.如命名为MyConn。再使用ConnectionString属性来设 置要连接的数据库种类及数据库所在的位置.最后用open方法 打开数据库。 数据库及信息管理・ ocnn.ConnectionString=str; ocnn.Open0;,/连接到指定数据库 f21产生数据集 stirng select=”select from表名”: 3.2使用Command对象操作数据库先定义Command对象. 再设置属性来指定对数据库的操作,其中SQL命令可.以为查询、 添加、修改、删除。 3.3将结果由数据库取回放到DataSet对象中 建立一个DataAdapter对象,产生数据集 3.4显示执行结果 SqlDataAdapter adapter=new SqlDa【aAd印ter(select,ocnn); DataSet ds=new DataSet0; adapter.Fill(ds.”表名”1; f31对组件进行数据绑定 dataGrid 1.DataSource=ds; dataGrid1.DataMembeI=”表名”: 利用控件辅助ADO.NET将结果输出。 上述两条语句可以合并为一条语句: dataGrid1.SetDataBinding(ds,”表名”); 4数据输出 数据的输出可以通过数据绑定技术来实现。ADO.NET类是以 对于ListBoX组件和ComboBox组件的数据绑定,绑定方法与 断开连接的方式工作。常把服务构建为连接一个服务器,检索一 些数据,再在客户PC上处理这些数据,之后再重连服务器,把数 DataGrid组件的数据绑定方法的前两个步骤基本一致,只是在最 后一条语句不同。这是由于DataGrid组件可以显示多列的数据,而 据传送回去进行处理。只从数据源中提取所需数据而不是全部数 据,大大提高了应用程序的效率。在数据绑定中允许将控件的任 何属性绑定至数据源。 4.1数据绑定技术 ListBox组件和ComboBox组件只能显示数据表中的一列的数据, 所以只需改写成:dataGrid1.SetDa【aBinding(ds,“表名.列名”)即可。 4|3简单型组件的数据绑定 简单型组件的数据绑定并不比复杂型组件数据绑定简单,这 数据绑定是指组件的属性从数据集里的某个或某些字段获 取数据的过程。例如TextBox组件的数据绑定就是把其Text属性 和数据集里的某个字段绑定起来。这样当数据集里的数据指针发 生了变化,TextBox组件中的Text属性值也随之发生变化。根据组 件显示的数据的表现形式,数据绑定一般分成简单型数据绑定和 复杂型数据绑定。简单型数据绑定通常是把数据集里的某个字段 的值绑定到组件的属性上。对于只显示单个值的组件,一般使用 简单绑定方式,这些组件大致为TextBox组件和Label组件。复杂 型数据绑定通常是把数据集里的某些字段或者某个字段中的多 行数据绑定到组件的属性上,支持复杂型数据绑定的组件为: 里的“简单”是进行绑定的组件在数据绑定后.显示的是单一数据, 而不像复杂型组件那样,可以显示多行或者多列的数据。支持简单 型数据绑定的绑定的组件主要有TextBox组件和Lable组件。 以TextBox组件为例,在窗体中加入TextBox组件后,数据绑 定过程和上面介绍的组件的数据绑定过程,在前两个步骤是完全 相同的.只是在产生数据集后的数据绑定稍有不同。 代码如下: textBox1.DataBindings.Add(”Text”,ds,”表名.列名”); 5结束语 ADO.NET是新一代的数据存取技术,它的内容相当丰富,本 文对数据库的访问讨论仅为入门讨论。其次,数据绑定是.NET程 序进行数据库编程的基础.能够进行数据绑定的组件不仅可以为 WinForm组件,也可以为用于Web设计的WinForm组件,Win— Form组件数据绑定实现方法,可参考其对应的WinForm组件的 实现方法.二者几乎相同。数据绑定为数据显示提供了方便,因为 DataGrid组件、ListBox组件、ComboBox组件。 无论是简单型数据绑定.还是复杂型的数据绑定.一般都遵 循以下几个步骤: (1)首先对数据库进行数据连接; (21接着产生用于绑定的DataSet; (3)对组件进行数据绑定。 4.2复杂型组件的数据绑定 所编写的代码极为短小、简单。但数据绑定也不是万能的,对于其 他的WinForm组件,譬如ListView组件和TreeView组件,虽然自 支持复杂型数据绑定的组件有:DataGrid组件、ListBox组件、 ComboBox组件『31。 本节以DataGrid组件为例,基于Microsoft.net平台,使用C# 面向对象编程语言介绍数据绑定。 身也提供了数据绑定,但为了更好地利用组件显示数据,用简单 的数据绑定是无法实现的,需要手写代码。ADO.NET为Web应用 程序的设计提供了一个更稳定、更具扩展性的数据存取技术,因 此,掌握ADO.NET数据存取技术具有深远的意义。 (1)利用The SQL Server.net Data Provider连接数据库 加入如下代码: SqlConnection penn=new SqlConnection0;//0 ̄1建一个SqlCon— nection对象ocnn 参考文献: 【l】(美)Fabio Claudio Ferracchiati,Jay Glynn.毛尧飞译..NET stirng str=”Data Source=0oca1);//Data Source为数据源 Initial Catalog=Northwind;user id=sa;Password=”1234”;//Initial 数据服务C#高级编程[MI.北京:清华大学出版社,2002. f2】(美)Dan Rahme1.天宏工作室译.使用Visrla Studio 6开发 Web数据库应用程序[MI.北京:清华大学出版社,2002. f31电脑编程技巧与维护杂志社.C#编程技巧典型案例解析 『J1.中国电力出版社,2005. Catlog为初始目录,auser id为用户ID,Password为密码 (上接第23页) 现——基于.NET组件技术[JJ.计算机工程与应用,2006. 参考文献: [1】覃国蓉.基于B/S架构的软件项目实i)ll[M].北京:电子工业 出版社.2004. 【3I_T_铁,徐雅骥,童霞,等译.Microsoft.NET程序设计技术内 幕fM】.清华大学出版社,2004. 【4J朱春芳,袁麟,汪海航.基于的Web Service的远程培训系 统研究与设计【J1.微型电脑应用,2005,35. 【2】刘军,阳小华,杨星.教学信息发布与管理系统的设计与实