《数据访问技术》PPT课件.ppt
第18章 数据访问技术数据库是一门复杂的技术,在当前的软件开发中得到了广泛的应用。.NET为应用程序对数据库的访问提供了友好而且强大的支持。Visual Studio 2008对数据库提供了全方位的支持,并不是ADO对象的下一代,而是在.Net Framework平台中负责数据存取的对象18.1 数据库的基本知识对于数据管理,没有数据库技术之前,可能需要把数据记录记录在纸介质上,这样查找数据的效率就很低,安全性能差。现在有了数据库的支持,就可以非常迅速的建立起自己的数据库,并进行管理和操作。18.1.1 数据库简介数据库技术产生于20世纪60年代中期,是数据管理的最新技术,是计算机科学的重要分支。数据库技术是应数据管理任务的需要而产生的。数据管理是指如果对数据进行分类、组织、编码、存储、检索和维护,它是数据处理的中心问题。经历了人工管理、文件管理和数据库系统三个发展阶段。人工管理阶段在20世纪50年代中期以前,当时计算机主要用于科学计算。人工管理数据具有以下的特点:数据不保存。数据需要由应用程序自己管理,没有相应的软件系统负责数据的管理工作。数据不共享。数据不具有独立性,数据的逻辑结构或物理结构发生变化后,必须对应用程序做相应的修改,这就进一步加重了开发人员的负担。18.1.2 SQL语言简介SQL语言是1874年由Boyce和Chamberlin提出的。1875年至1879年IBM公司San Jose Research Laboratory研制的关系数据库管理系统原型系统System R实现了这种语言。自SQL语言成为国际标准语言以后,各个数据库厂家纷纷推出各自支持的SQL软件或与SQL的接口软件,这就为不同数据库系统之间的相互操作有了共同的基础。SQL语言是一个综合的、通用的、功能极强且简洁易学的语言。主要的特点包括:综合统一。高度非过程化面向集合的操作方式。语言简单,易学易用。18.1.3 Visual Studio 2008对数据库的支持Visual Studio 2008中提供了对SQL Server 2005 Express版本的数据库。安装Visual Studio 2008时,选择默认安装,安装完后,右击“我的电脑”图标,在弹出的菜单中选择“管理”命令,如果安装正确的话,展开“服务和应用程序”节点,可以看到“SQL Server配置管理器”如图所示。计算机管理18.2 SQL语言Visual Studio 2008为了全方位支持SQL语言,提供了许多易用的工具来支持SQL语言的各个方面。下面就逐一介绍各个工具。18.2.1 定义、删除与修改数据表在“服务器资源管理器”面板中选择“数据连接”项,新建一个与数据库(Northwind)的连接,在该数据库连接中找到“表”节点并右击,在弹出的菜单中选择“添加新表”命令。接着Visual Studio 2008将自动转入创建数据表的界面,如图所示。创建数据表18.2.2 显示数据如果想显示数据,可以右击表MyTable,选择弹出菜单中的“显示表数据”命令,点击选择该命令,Visual Student 2008将会自动打开显示数据的界面,如图所示。在图中,可以直接在ID和Name列的下方输入相应的数据即可添加数据至表Student,如图所示。显示数据界面 输入数据18.2.3 查询如果要实现查询功能,可以在Visual Studio 2008中进行数据查询工作,在相应的数据表上右击,选择“新建查询”命令,Visual Studio 2008将弹出一个对话框,提示读者选择要查询的表,如图所示。选择MyTable表,单击“添加”按钮,Visual Studio 2008将自动将表添加到查询界面中,如图所示。添加表 查询界面18.2.4 存储过程如果要建立存储过程,可以在Visual Studio 2008中用向导自动建立。在“服务资源管理器”中,右击选择“存储过程”,如图所示,在出现的选项中选择“添加新存储过程”如图所示,就会自动建立存储过程如图所示。选择存储过程添加存储过程自动建立存储过程18.3 连接和操作数据库是一组向.NET程序员公开数据访问服务的类,为创建分布数据共享应用程序提供了丰富的组件,为.NET Framework中不可缺少的一部分。中的结构架构如图所示。结构的概述通过数据处理将数据访问分解为多个可以单独使用或者顺序使用的不连续组件。通常包括用于数据连接到数据库、执行命令和检索结果的.NET Framework数据提供程序。下列将逐一介绍各个概念。1Connection对象2Command对象3DataReader对象4DataSet对象18.3.2 链接数据对象Connection通过的各个对象的相互配合,就可以连接和操作数据库。下面将逐一讲解各个对象的用法。要访问数据库,首先要创建和打开数据库链接,Connection对象主要用于处理对数据库的连接和管理数据库事务。着重说明一下,创建链接的方式依赖于要访问的数据库的类型。用于创建和打开Microsoft SQL Server数据库的链接的格式如下:string connectionString=”Server=Localhost;database=pubs;uid=sa;pwd=xxx”;SqlConnection myConnection=new SqlConnection(connectionString);();18.3.3 操作数据对象Command和读取数据对象DataReader当使用Connection对象打开链接后,就可以用一个包含SQL语句的SQL字符串,通过Command对象和DataReader对象来操作数据库。基本格式如下:string cmdString=“Select*From Employees”;SqlCommand myCmd=new SqlCommand(cmdString,myConnection);SqlDataReader mySR=new();18.3.4 数据集对象DataSet【本节示例参考:示例代码Chap18TestDataSet】当需要获取一些数据库记录并要快速显示在网页上,那么应该使用DataReader对象。可是如果要操作断开连接的内存数据库记录,就需要使用DataSet对象。DataSet对象是中最复杂的对象,该对象选定的数据在内存中存储。DataSet对象提供了一个记录集,可以包含一个或多个DataTable类,它们代表数据库表。同时可以用DataRelation类定义表之间的关系。最后DataView类代表DataTable的视图。DataAdapter类是DataSet与它代表的数据源之间的桥梁。使用DataAdapter对象和DataSet对象可以这样读取数据库。18.4 数据绑定技术在快速应用程序开发中,.NET让整个数据绑定的概念超越了原来简单的把控件附加到数据表格上的概念。本节将在基础上介绍控件的数据绑定技术。18.4.1 有关数据绑定概念数据绑定是指把控件与存储在数据源中的信息绑定在一起。数据源可以是表达式、属性、方法、集合,甚至另一个控件的属性。实现绑定后一个好处就是只要程序中相应的数据发生变法,那么与其绑定的表达式、属性、方法、集合、属性也会随之改变。数据绑定的重点不是数据部分,而是绑定部分。如果要在控件绑定属性中显示绑定的数据,就需要显示调用DataBind()方法,该方法是页和所有服务器控件的方法。通常是在Page_Load事件调用DataBind(),如下所示。Protected void page_Load(Object Src,EventArgs E)DataBind();18.4.2 实现绑定数据源【本节示例参考:示例代码Chap18BindDatesouce】理解数据绑定的工作原理的最好办法是看几个例子。下面两小节将讲解如何把数据绑定到服务器控件上,数据源为数组和数据库。下面通过一个把数组中的数据绑定到DropDownList控件中的实例来讲解。首先产生一个数组,然后设置DropDounList控件的DataSource属性,接着调用DataBind方法。18.5 数据源控件数据源控件的主要作用是实现与数据连接的操作。Visual Studio 2008中的数据源控件分别为SqlDataSource控件、AccessDataSource控件、LinqDataSource控件、ObjectDataSource控件、XmlDataSource控件和SiteMapDataSource控件,如图所示。数据源控件18.5.1 SQL数据源控件SqlDataSource【本节示例参考:示例代码Chap18TestSqlDataSource】通过SqlDataSource控件,可以使用Web控件访问位于关系数据库中的数据,包括Microsoft SQL Server和Oracle数据库以及OLE DB和ODBC数据源。该控件可以跟数据访问控件一起使用,用少量代码或者不用代码在网页上显示和操作数据。在提供用于连接到数据库的连接字符串和使用数据的SQL语句或存储过程后,SqlDataSource控件就可以代替类,使网页访问和操作数据。因为在运行时,该控件会自动打开数据连接,执行SQL语句或存储过程,然后选定数据,最后关闭连接。18.5.2 Access数据源控件AccessDataSource【本节示例参考:示例代码Chap18TestAccessDataSource】在小型网站的开发中,经常会用到Access数据库,本节将介绍如何使用AccessDataSource控件来连接Microsoft Access数据库,检素该类型数据库中.mdb文件中的数据。AccessDataSource控件继承了SqlDataSource类,使用提供程序连接到Microsoft Access数据库。为了方便用户配置数据源并绑定到相应的控件上,可以使用数据源配置界面。下面将详细演示如何使用数据源配置界面。18.5.3 对象数据源控件ObjectDataSource【本节示例参考:示例代码Chap18TestObjectDataSource】在网站的开发中,经常会用到类对象中的数据,本节将介绍如何使用ObjectDataSource控件来连接类对象。为了方便用户配置数据源并绑定到相应的控件上,可以使用数据源配置界面。下面将详细演示如何使用数据源配置界面。运行结果18.5.4 Xml数据源控件XmlDataSource【本节示例参考:示例代码Chap18TestXmlDataSource】XmlDataSource控件的作用就是检索XML数据,然后编程访问或者将其绑定到其他控件。XmlDataSourc 控件非常简单,无须手写代码,就可以实现对XML数据的访问、过滤以及转换,同时XML数据的访问不仅可以从本地文件进行,而且也可以从指定的URL地址自动下载。为了方便用户配置数据源并绑定到相应的控件上,可以使用数据源配置界面。下面,将详细演示如何使用数据源配置界面。18.6 数据绑定控件的数据访问控件有Repeater控件、Datalist控件、GirdView控件、DetailsView 控件、FormView 控件和ListView控件,如图所示。下面将逐一介绍。数据访问控件18.6.1 重复控件Repeater【本节示例参考:示例代码Chap18TestRepeater】Repeater控件是一个模板控件,可以使用网页中的任何可用数据做数据源,并且能够创造出自定义的列表。该控件可以灵活的控制数据,还可以重复操作。因为该控件没有默认的外观,所以用户可以决定以垂直、水平、在一行内或者其他方式布置元素,配置模板。18.6.2 数据列表控件DataList【本节示例参考:示例代码Chap18TestDataList】DataList控件又称为数据列表控件,因为它是模板控件,所以可以非常灵活的显示数据,同时又因为宽提供了对显示数据排序、编辑和分页等支持,所以它具有更强大的功能。也是一个非常强大的数据绑定控件。DataList控件可以说是另一种Repeater控件,它与Repeater控件一样重复清单的方式显示数据项目,但是该控件比Repeater控件在使用上更灵活一些,更易于设计和维护。它在Repeater控件的基础上又增加了两种模板:SelectedItemTemplate:选择模板,当用户选择该控件的某项时,控制其的显示。EditItemTemplate:编辑模板,设置进行编辑而选定的项。18.6.3 网格视图控件GirdView【本节示例参考:示例代码Chap18TestGirdView】DataGrid控件又称为网格视图控件,以表格的形式显示数据。DataGrid控件将数据源的字段显示为表中的列,DataGrid控件中的每一行表示数据源中的一个记录。同时该控件还支持排序、分页、编辑和删除等操作。当数据源的大小超过页面的范围,就可以使用分页机制。DataGrid控件自带了分页机制,可以在用户不作任何处理的情况下,直接将数据源的行分成多页显示。18.6.4 其他控件呈现多列数据时,可以使用Repeater控件、DataList控件和GridView控件,但是如果要呈现单列数据,即常用的数据明细时,就会使用到DetailsView控件和FormView控件。虽然DetailsView控件的布局固定,自定义数据显示的布局功能有限,而FormView数据控件都有很强的自定义布局能力;但是两者都内置了分页和排序等功能。DetailsView控件在功能上与GridView控件非常相似,一次呈现一条表格形式的记录,并提供翻阅多条记录以及插入、更新和删除记录的功能。FormView控件一次呈现数据源中的一条记录,并提供翻阅多条记录以及插入、更新和删除记录的功能。不过,两者之间的差别在于:DetailsView控件使用基于表格的布局,在这种布局中,数据记录的每个字段都显示为控件中的一行。而FormView控件则不指定用于显示记录的预定义布局。实际上,用户将创建包含控件的模板,以显示记录中的各个字段。该模板包含用于设置窗体布局的格式、控件和绑定表达式。18.7 其他数据库介绍除了SQL Server系列的数据库软件之外,还有许多其他的数据库服务软件。下面简要介绍其他的数据库软件。18.7.1 MySQL数据库MySQL是一款非常著名的数据库软件,它是一个真正的多用户、多线程SQL数据库服务器,其最大优点就是开源免费。MySQL提供了很好的SQL语言支持,但面对大型数据库软件有点力不从心,而且配套软件不够完善。随着开源社区的不断努力,一款名为SQLyog的MySQL管理软件逐渐成为主流。运行界面如图所示。运行界面18.7.2 ORACLE数据库Oracle公司成立于1877年,是一家著名的专门从事研究、生产关系数据库管理系统的专业厂家。1879年推出的Oracle第一版是世界上首批商用的关系数据库管理系统之一。Oracle是一款大型数据库软件,而且是一款商业软件,其具有以下的特征:兼容性:Oracle产品采用标准的SQL,并且经过美国国家标准技术所测试,与其他多家的DBMS兼容。可移值性:Oracle可以安装在70种以上不同机型的大中小型计算机上。可联结性:Oracle由于在各种机型上使用相同的软件,使互联网更加容易,能与多种通信网络接口相连。高生产率:为了便于应用的开发和最终用户的使用,Oracle提供了两种类型的编程接口:预编译程序接口和子程序调用接口、应用生成、菜单管理、报表生成和电子表格接口等一系列工具开放性:Oracle由于具有以上的特性,使其具有良好的开发性。18.8 小结数据库是一种在物理数据和逻辑数据之间提供相互转化方式的一种机制,而C#中提供的数据库访问技术将这些逻辑数据转化为可视化数据,便于用户使用。本章首先讲解了数据库的基本知识,即数据库和SQL语言的简要介绍,接着重点介绍了Visual Studio 2008在数据库方面提供的许多易用的工具。虽然Visual Studio 2008也提供了一些数据库管理工具,但这些工具功能相对比较单一,不能进行复杂的操作。要想在程序中访问数据库,就要用到和数据绑定技术。本章只是简单的介绍了这两项的基本知识,它们还有很多强大的功能和值得读者研究。