C#程序设计简明教程 教学课件 ppt 作者 陈佛敏 潘春华 吕洋波 第7章 数据库开发技术

上传人:E**** 文档编号:89343650 上传时间:2019-05-23 格式:PPT 页数:29 大小:292.50KB
返回 下载 相关 举报
C#程序设计简明教程 教学课件 ppt 作者  陈佛敏 潘春华 吕洋波 第7章  数据库开发技术_第1页
第1页 / 共29页
C#程序设计简明教程 教学课件 ppt 作者  陈佛敏 潘春华 吕洋波 第7章  数据库开发技术_第2页
第2页 / 共29页
C#程序设计简明教程 教学课件 ppt 作者  陈佛敏 潘春华 吕洋波 第7章  数据库开发技术_第3页
第3页 / 共29页
C#程序设计简明教程 教学课件 ppt 作者  陈佛敏 潘春华 吕洋波 第7章  数据库开发技术_第4页
第4页 / 共29页
C#程序设计简明教程 教学课件 ppt 作者  陈佛敏 潘春华 吕洋波 第7章  数据库开发技术_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《C#程序设计简明教程 教学课件 ppt 作者 陈佛敏 潘春华 吕洋波 第7章 数据库开发技术》由会员分享,可在线阅读,更多相关《C#程序设计简明教程 教学课件 ppt 作者 陈佛敏 潘春华 吕洋波 第7章 数据库开发技术(29页珍藏版)》请在金锄头文库上搜索。

1、第7章 数据库开发技术,数据库操作是应用开发中非常重要的部分。在数据库应用系统中,系统前端的用户界面(如Web浏览器、窗体、控制台等)和后台的数据库之间,.NET使用ADO.NET将二者联系起来,用户和系统一次典型的交互过程如图所示。 从中可以看出,用户和系统的交互过程是:用户首先通过用户界面向系统发出数据操作的请求,用户界面接收请求后传送到ADO.NET;然后ADO.NET分析用户请求,并通过数据库访问接口与数据源交互,向数据源发送SQL指令,并从数据源获取数据;最后,ADO.NET将数据访问结果传回用户界面,显示给用户。,7.1 ADO.NET简介,简单来说,ADO.NET就是一系列提供数

2、据访问服务的类。本节将简要介绍一下数据访问技术,以及ADO.NET的基本框架。,7.1.1 数据访问技术,下面简单的回顾一下微软公司的数据访问技术所走过的几个阶段, (1)ODBC:第一个使用SQL语言访问不同关系数据库的数据访问技术。 (2)DAO:提供给Visual Basic程序设计人员的一种简单数据访问方法,用于操纵Access数据库。 (3)RDO:解决了DAO需要在ODBC和Access之间切换导致的性能下降问题。 (4)OLE DB:基于COM(Component Object Model),支持非关系数据的访问。 (5)ADO:基于OLE DB,更简单、更高级、更适合于Visu

3、al Basic程序设计人员。 (6)ADO.NET:基于.NET体系架构,优化的数据访问模型和基于COM的ADO是完全不同的数据访问方式,最新ADO.NET 2.0版本在性能方面有了更进一步的提高。,7.1.2 System.Data命名空间,ADO.NET结构的类包含在System.Data命名空间内,根据功能划分,System.Data空间又包含了多个子空间,,7.2 连接数据库,若要访问数据库,必须连接到数据库,本节将首先以连接SQL Server数据库为例进行数据库连接技术的介绍。,7.2.1 SqlConnection类,System.Data.SqlClient.SqlConne

4、ction类提供对SQL Server数据库的连接,其常用属性和方法,7.2.2 设置连接参数,SqlConnection的ConnectionString属性指定了所要打开SQL Server数据库的参数,包含源数据库名称和建立初始连接所需的其他参数。因此,在连接数据库之前,首先要构造一个合理的连接字符串。 为了给读者一个直观的印象,下面首先给出一个典型的连接字符串: “Persist Security Info=False;User id=sa;pwd=sa;database=northwind;server=(local)“,7.2.3 创建SQL Server连接,在构造完成SqlCo

5、nnection对象的ConnectionString属性后,便可以使用其Open方法连接SQL Server数据库了,形式如下。 public virtual void Open(); 另外,也可以直接使用SqlConnection的构造函数,并把连接字符串作为参数来建立连接。下面的代码同样完成数据库连接: 1. /得到一个SqlConnection 2. SqlConnection myCon = new SqlConnection 3. (“Persist Security Info=False;User id=sa;pwd=sa;database=northwind;server= (

6、local)“); 4. /建立连接 5. myConn.Open();,7.2.4 断开SQL Server连接,断开SQL Server连接也非常简单,使用SqlConnection的Close方法即可: public virtual void Close(); 下面的示例断开了上一小节建立的Northwind数据库连接: 1. /断开连接 2. myCon.Close(); 3. /输出连接状态 4. Console.WriteLine(“0“,myCon.State); /输出:Closed,7.2.5 其他数据库连接,与连接SQLServer数据库类似,可以使用System.Data

7、中其他的类来创建其他数据库的连接,具体包括以下3个类。 (1)OleDbConnection:可管理通过OLE DB访问的任何数据库连接; (2)OdbcConnection:可管理通过使用连接字符串或ODBC数据源名称(DSN)创建的数据库连接; (3)OracleConnection:可管理Oracle数据库连接。 这3个类的使用与SqlConnection非常相似,不再赘述。,7.3 与数据库交互,上面介绍了如何使用ADO.NET中的Connection类创建数据库连接,下面介绍查询数据操作。 查询数据操作可以通过多种方式来实现,其中,DBCommand对象常表示一个SQL查询或者一个存

8、储过程,而DataAdpater对象常用于把一个DBCommand提交给数据库。,7.3.1 使用SqlCommand提交增删改命令,DBCommand对象是一个统称,它包括以下4个类: (1)OleDbCommand:用于任何OLE DB提供程序; (2)SqlCommand:用于SQL Server 7.0或更高版本; (3)OdbcCommand:用于ODBC数据源; (4)OracleCommand:用于Oracle数据库。,7.3.2 使用SqlCommand获取查询命令,上面介绍了使用SqlCommand执行非查询的数据操作,除此之外,SqlCommand也可以执行数据查询操作。S

9、qlCommand有两种方式执行查询操作。 (1)使用自身的ExecuteReader和ExecuteXmlReader方法,获取只读的数据,并分别放入DataReader对象或XmlReader对象中。 (2)本身只作为一条SQL语句或者一个存储过程,结合后面所介绍的DataAdapter,DataSet实现数据查询。,7.3.3 使用DataAdapter提交查询命令,DataAdapter表示一组数据命令和一个数据库连接,可以向数据库提交DBCommand对象所代表的SQL查询命令,同时获取返回的数据结果集。 对于不同的数据源,ADO.NET同样提供了多个不同的DataAdapter子类

10、。本节仍以处理SQL Server数据库的SqlDataAdapter为例进行说明,最常用的成员,7.4 管理内存数据,通过ADO.NET从数据库中读取的数据集,是被保存在内存中的。本节将主要讲解如何管理内存中的数据。,7.4.1 数据集简介,当完成对数据库的查询后,需要把所获取的数据保留下来,ADO.NET使用数据集对象在内存中缓存查询结果数据。 数据集对象的结构类似于关系数据库的表,包括表示表、行和列等数据对象模型的类,还包含为数据集定义的约束和关系。在ADO.NET中,可以作为数据集对象的类如图所示。,7.4.2 使用DataTable实现内存表,ADO.NET试图模拟所有的数据库对象。

11、首先来看对数据表的实现。数据表包括列、行、约束、关系等,这些对象与ADO.NET中对象的对应关系为: (1)数据表DataTable; (2)数据列DataColumn; (3)数据行DataRow; (4)约束Constraint; (5)关系DataRelation。,7.4.3 使用DataSet管理数据,如果把上一部分介绍的内存表DataTable对应为数据库中的表,那么DataSet对象则对应于整个数据库。 DataSet是ADO.NET结构的主要组件,是从数据源中检索到的数据在内存中的缓存,可以包括多个DataTable对象。常用的属性和方法如图所示。,7.4.4 使用DataRe

12、ader获取只读数据,除了DataSet,还可以使用DataReader来获取数据。如7.3.2节中所介绍的,可以使用DBCommand的ExecuteReader方法来获得一个只读的结果数据集;并且,在读取的过程中,数据游标只能向前移动,不能返回。这里同样使用SqlDataReader子类进行介绍。,7.4.5 比较DataSet和DataReader,DataSet和DataReader都可以获取查询数据,那么,应如何在两者之间进行选择呢?通常来说,下列情况下适合使用DataSet: (1)操作结果中含多个分离的表; (2)操作来自多个源(例如来自多个数据库、XML文件的混合数据)的数据;

13、 (3)在系统的各个层之间交换数据,或使用XML Web服务; (4)通过缓冲重复使用相同的行集合以提高性能(例如排序、搜索或过滤数据); (5)每行执行大量的处理; (6)使用XML操作(例如XSLT转换和Xpath查询)维护数据。,7.5 XML应用,作为一种标准数据交换格式,XML主要用在不同系统中交换数据,以及在网络上传递大量的结构化数据。本章将简单介绍XML的概念以及在.NET中如何使用XML。,7.5.1 理解XML,像HTML一样,可扩展标记语言(eXtensible Markup Language,XML)也是一种标记语言,依赖于标记来发挥其功能。XML的核心是标记,不过XML

14、比HTML的功能要强大得多。 下面给出一个使用XML的例子:个人通讯录。通讯录的目的是记录所有的朋友信息,如姓名、电话等。为了做到这一点,XML首先定义一些标签,如、等。这些标签类似于HTML中的标记,同时还可以代表一定的语意。用它们可以标记所有的数据。,7.5.2 XML相关类,在.NET框架中,操作DOM模型的类位于System.Xml命名空间中,,7.5.3 XML数据的访问,首先介绍将XML文档读入DOM对象的技术。.NET支持多种方式读取XML文档,包括从字符串流、URL、文本读取器或者XmlRreader等方式。 1使用XmlDocument读取XML 2使用XmlReader读取

15、XML 3使用XmlNode读取节点,7.5.4 创建XML节点,可以通过向XML中插入新的节点来修改文档,首先需要在DOM对象中创建新的节点。可以使用XmlDocument的Create*系列方法来实现这个功能。 针对不同的节点类型,Create*系列方法有所不同,但都以Create开头,并以节点的类型结尾,如CreateComment(创建注释)、CreateTextNode(创建叶子节点)等。另外,还可以使用CreateNode方法,结合节点类型参数建立各种类型的节点,形式如下: public virtual XmlNode CreateNode(XmlNodeType type,str

16、ing name,string namespaceURI);,7.5.5 修改XML节点,修改DOM节点的方法有很多种,常用的方法包括以下几种: (1)使用XmlNode.InnerText属性修改节点的值; (2)通过修改XmlNode.InnerXml属性来修改节点标签或其值; (3)使用XmlNode.ReplaceChild方法,用新的节点来替换现有节点。,7.5.6 删除XML节点,要从DOM树中删除一个节点非常简单,在使用XPath检索节点的基础上,可以使用XmlDocument或XmlNode对象的RemoveChild方法,删除掉一个指定的节点。如果想要删除所有的后代节点,可以使用RemoveAll方法。,7.5.7 使用DataSet加载XML数据,想要使用DataSet加载XML数据,需要首先使用XmlDataDocument中DataSet属性的ReadXmlSchema方法生成XML数据和关系数据的映射关系,然后便可以使用XmlDataDocument的Load或LoadXml方法加载。,7.6 小结,本章主要讲解

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号