收藏 分享(赏)

使用ADONET访问数据.ppt

上传人:gsy285395 文档编号:8424992 上传时间:2019-06-25 格式:PPT 页数:49 大小:151.50KB
下载 相关 举报
使用ADONET访问数据.ppt_第1页
第1页 / 共49页
使用ADONET访问数据.ppt_第2页
第2页 / 共49页
使用ADONET访问数据.ppt_第3页
第3页 / 共49页
使用ADONET访问数据.ppt_第4页
第4页 / 共49页
使用ADONET访问数据.ppt_第5页
第5页 / 共49页
点击查看更多>>
资源描述

1、第六章 使用ADO.NET访问数据,学习内容:,首先介绍了ADO.NET的基本框架,然后讲解如何使用其最核心的数据访问组件Connection,Command,DataSet,DataReader和DataAdapter对象,最后通过结合ASP.NET中的数据绑定控件Repeater,Datalist和DataGrid具体描述了如何将服务器端的数据以不同的格式表现。其重点在于这几个控件的使用方法,尤其是DataGrid控件的各种操作方法。,学习目标:,通过本章的学习,应能达到: 理解:ADO.NET的工作原理; 了解:Repeater和DataList控件; 应用:能够使用数据访问控件进行数据

2、操作; 应用:能够应用DataGrid实现数据分页和数据排序; 应用:能够使用模版进行自定义查询和修改。,一、ADO.NET简介,Visual Studio.NET通过一组工具和命名空间提供对数据的访问,他们总体上被称为Microsoft ADO.NET。,一、ADO.NET简介,(一)ADO.NET是什么? ADO.NET是.NET技术的一部分 它是与数据打交道的许多类的集合在.NET框架中,相似功能的类可以打包在一起,形成命名空间。ADO.NET最核心的命名空间有:System. Data, System.Data.SqlClient, System.Data.OleDb, System.

3、Data.SqlTypes, System.Data.Common 3. ADO.NET是数据访问的一种接口它不仅是一个数据访问接口,还是一个全新的、为.NET框架而生的解决方案。,一、ADO.NET简介,(二)ADO.NET的对象模型ADO.NET对象模型中有两个核心组件:DataSet和.NET数据提供程序。通过这两个核心组件,可以实现数据访问和数据操作的分离。,一、ADO.NET简介,DataSetDataSet(数据集)是ADO.NET的非连接架构的核心组件。DataSet的引入是ADO.NET最重要的特征。 注意:连接环境和非连接环境的主要区别:P81,一、ADO.NET简介,Dat

4、aSet DataSet对象DataSet对象位于System.Data命名空间中。该对象可用作数据库的虚拟缓存,在使用数据库时,将应用最多或必须的数据放到DataSet中即可。 (2) DataSet集合Tables,Relation,Constrains,一、ADO.NET简介,ADO.NET Data ProviderADO.NET结构的另一个核心元素是:.NET数据提供程序,其组件的设计目的相当明确:为了实现数据操作和对数据的快速、只进、只读访问。ADO.NET提供两种.NET数据提供程序SQL Server.NET Data Provider和OLEDB.NET Data Provi

5、der。,二、数据访问控件的使用,(一).NET数据提供程序.NET数据提供程序可用来连接到数据库、执行命令和检索结果。组成.NET数据提供程序的四个核心对象见下表:,二、数据访问控件的使用,表6-1 .NET数据提供程序的四个核心对象,二、数据访问控件的使用,(二) 使用Connection 对象就像两个人打电话需要先建立连接,使用数据之前,必须先建立和数据源的连接。要打开与一个数据库的连接,你可以创建连接对象的一个实例。创建了这个实例之后,你就可以调用连接对象的Open方法,打开一个连接。,二、数据访问控件的使用,案例6-1 添加 SqlConnection数据组件在本案例中,使用的是Vi

6、sual Studio.NET集成开发环境将SqlConnection组件添加到一个Web窗体中。 步骤1:添加SqlConnection组件 步骤2:设置ConnectionString属性 步骤3:连接SqlServer数据库并测试 步骤4:查看系统自动生成的相关代码,二、数据访问控件的使用,注意:如果不通过窗体设计其添加数据组件,也可以在程序中任何地方编写代码手动创建连接: Dim conn as SqlConnection Conn=New SqlConnection() Conn.ConnectionString=“” 也可以这样简写: Dim conn As SqlConnecti

7、on=New SqlConnection(“”),二、数据访问控件的使用,关于连接字符串:记住几个要素即可:数据库服务器名称,数据库名称,安全机制(如果不是信任连接,还要包含用户和密码)。有两种写法:第一种写法:Data Source=qiuqinlunnetsdakInitial Catalog=pubsIntegrated Security=SSPI 第二种写法: Server=qiuqinlunnetsdak;database=pubs;Trusted-Connection=True,二、数据访问控件的使用,连接的打开和关闭:打开连接使用Open方法,关闭连接使用Close方法:Conn

8、.Open()Conn.Close(),(三) 使用DataReader对象,一般的,DataReader对象的使用步骤为: 创建连接; 打开连接; 创建一个Command对象; 定义一个DataReader; 执行Command对象的ExecuteReader()方法返回一个DataReader对象; 后续对该DataReader对象的操作,例如绑定到DataGrid数据显示控件或直接取其中的值等; 关闭DataReader; 关闭Connection。,(三) 使用DataReader对象,案例 6-2 使用DataReader检索数据本案例使用DataReader对象从SqlServer

9、服务器的pubs数据库中读取authors表的前10条记录,通过DataGrid数据显示控件将记录显示到浏览器上。 步骤1:在设计图中,从工具箱的Web窗体选项卡将DataGrid控件拖到页面上。 步骤2:切换到代码页,在Page_Load中添加以下代码:,(三) 使用DataReader对象,Dim connStr as string=“server=qinqinlunnetsdk;trusted-connection=True;database=pubs” Dim conn as SqlConnection=New SqlConnection(connstr) Conn.Open() Di

10、m sqlstr=“select top 10 au-id,address,phone,city from authors” Dim cmd as sqlCommand=new sqlCommand(sqlstr,conn) Dim dr as SqlDataReader=cmd.ExecuteReader() Me.DataGrid1.DataSource=dr Me.DataGrid1.DataBind() Dr.Close Conn.Close,(四)使用DataSet对象,DataSet就像一个小型的仓库,这个小仓库中最常见的是DataTable这种货物。要把Database大仓库中的

11、东西(例如:数据库中的表)搬到小仓库中,需要有公路Connection,还需要运货的车DataAdapter。下面我们来看如何使用DataAdapter的Fill方法,将数据推入DataSet,该过程相当于从货车上卸货到小仓库中。,(四)使用DataSet对象,DataSet对象的一般使用步骤: 创建连接; 创建一个DataAdapter对象; 定义一个DataSet; 执行DataAdapter对象的Fill()方法将数据填充到DataSet的表中; 后续对该DataSet对象的操作,例如将DataSet中的表绑定到DataGrid控件; 关闭Connection。,(四)使用DataSet

12、对象,案例 6-3 使用DataAdapter和DataSet检索数据本案例首先使用DataAdapter对象从SqlServer的pubs数据库中读取authors表的前10条记录,然后执行DataAdapter对象的Fill()方法将数据填充到DataSet中,最后通过DataGrid数据显示控件将记录显示到浏览器上。,(四)使用DataSet对象,将案例6-2中的Page_Load代码修改为:,Dim connStr as string=“server=qinqinlunnetsdk;trusted-connection=True;database=pubs” Dim conn as S

13、qlConnection=New SqlConnection(connstr) Dim sqlstr=“select top 10 au-id,address,phone,city from authors” Dim da as SqlDataAdapter=New SqlDataAdapter(sqlstr,conn) Dim ds as DataSet=New DataSet() Da.Fill(ds,”authors”) Me.DataGrid1.DataSource=ds.Tables(“authors”) Me.DataGrid1.DataBind() Conn.Close(),(四

14、)使用DataSet对象,DataSet和DataReader的比较,(四)使用DataSet对象,注意: 一、DataRead打开时,将以独占方式使用Connection,所以用完后都必须调用Close方法关闭。 二、Dataset和DataReader的区别: 1. DataSet主要用于非连接环境,DataReader主要用于连接环境; 2. DataSet可以实现数据的本地缓存,并实现批量更新。DataReader主要用于只读数据的查询。,三、数据绑定控件的使用,数据控件:Repeater,DataList,DataGrid控件,(一)数据绑定,实现数据绑定的方法:DataBind 在

15、ASP.NET中不仅数据表可以绑定,数组也可以绑定。见P93案例6-4 数据绑定,(二)使用Repeater控件,与大多数Web控件具有固定外观(如下拉框、DataGrid表格等)不同,Repeater控件没有默认外观,其外观完全由其模板来控制。Repeater控件最关键的部分是样式模板,每个Repeater必须至少定义一个ItemTemplate。下表中描述的其他可选模板可用来自定义列表的外观。,(二)使用Repeater控件,表6-3 Repeater使用的数据模板,(二)使用Repeater控件,下面通过案例6-5来描述如何使用这几个模板。案例6-5显示一个绑定到SqlDataReade

16、r的Repeater控件,该控件返回SqlServer的pubs数据库中titles表的信息。Repeater控件为titles表中的每一项呈现一次ItemTemplate。它只呈现其模板中包含的元素(本例中只有Title_id和Title)。,(二)使用Repeater控件,步骤13通过Repeater控件的ItemTemplate模板实现数据的最简单显示,步骤56对数据显示格式做了些处理,步骤7增加HeaderTemplate模板和FooterTemplate模板,步骤8增加AlternatingItemTemplate模板,步骤9增加SeparatorTemplate模板。,(二)使用R

17、epeater控件,步骤1:添加Reapter控件 步骤2:添加ItemTemplate 切换到HTML视图,将光标定位到之前一个,输入“”符号,选择ItemTemplate模板。 见6-51.aspx 步骤3:编写获取数据的代码在Page_Load中添加一下代码:见6-52.aspx,(二)使用Repeater控件,步骤4:运行结果如图 P6-12所示 步骤5:将数据分行显示切换到“HTML”视图。在部分增加分行功能(添加)。见 6-53 步骤6:修改数据显示格式见 6-54,(二)使用Repeater控件,步骤7:定义HeaderTemplate(头模板)和FooterTemplate(尾

18、模板)见 6-55.aspx 步骤8:定义AlternatingItemTemplate(隔行模板)见 6-56.aspx 步骤9:定义SeparatorTemplate(分割线模板)见 6-57.aspx,(三)使用DataList控件,DadaList控件除了含有Repeater的功能外,还可以设置单行笔数、对行进行选择等。 DadaList控件将数据行显示为列表中的项。可通过包括HTML文本和控件,使用模板定义项的布局。 DadaList控件比Repeater控件而言,更容易掌握。,(三)使用DataList控件,案例6-6 使用DataList控件 步骤1:添加DataList控件 步

19、骤2:选择模板右击DataList,选择编辑模板,再选择页眉和页脚模板。切换到HTML视图,可看到6-61.aspx 步骤3:增加ItemTemplate模板切换到HTML视图,增加ItemTemplate代码见 6-62.aspx,(三)使用DataList控件,步骤4:添加相应的数据读取代码在Page_Load中添加一下代码: 见 6-63.aspx 步骤5:修改DataList控件显示格式可以通过DataList的自动套用格式设置 步骤6:设置DataList控件的水平或垂直布局方法1:垂直|水平:RepeatDirection=Vertical|HorizontalRepeatColu

20、mns=3方法2:可在DataList控件上右击选择属性生成器进行布局设定。 垂直布局:项以列的形式显示,自上而下,从左到右地加载 水平布局:项以行的形式显示,从左到右、自上而下地加载,(四)使用DataGrid控件,DataGrid控件以表格式布局显示数据。使用它可以自动显示表的内容,是它的最简单的用法。 与DataList和Repeater不同,DataGrid呈现的是以列组织的数据表,而前者是以项为基础的。 在最简单的情况下,使用DataGrid控件有3个步骤: 把DataGrid添加到页面上; 把DataGrid的DataSource属性设置为一个合适的数据源; 调用控件的DataBi

21、nd方法以自动把数据绑定到控件上。,(四)使用DataGrid控件,案例 6-7 DataGrid的最简单用法 本案例是使用DataGrid绑定数据的最简单用法,通过DataAdapter和DataSet取得SqlServer的pubs数据库的authors表的数据,并绑定到DataGrid控件上。 步骤1:在设计视图上,添加DataGrid控件 步骤2:设置DataGrid的自动套用格式为专业型 步骤3:在Page_Load中添加一下代码:见6-7.aspx,(四)使用DataGrid控件,与DataList控件不同,DataGrid控件支持数据分页。 案例6-8 实现DataGrid的自动

22、分页 在案例6-7的基础上为DataGrid增加分页,每Web页只显示4行数。 步骤1:在设计视图中,选择DataGrid1控件,单击属性窗口底部的属性生成器链接。 步骤2:在DataGrid属性对话框中,单击分页 步骤3:选中允许分页框。启用默认分页属性的整个集合 步骤4:将页面大小属性这支委要在每一页上显示的项数,这里设置4,(四)使用DataGrid控件,步骤5:在模式列表中,选择显示上一页下一页按钮,同时在下一页按钮文本中输入“下一页”,上一页按钮文本中输入“上一页”。 上述相当于设置一下属性: AllowPaging=True PageSize=4 运行后,点击下一页,数据却并没有发

23、生改变。 步骤6:切换到代码编写页中,在类名中选中DataGrid1,在方法下拉框中选中PageIndexChanged事件,设置CurrentPageIndex属性及执行DataGrid的数据绑定,来跟踪并显示当前的索引,加入以下代码:DataGrid1.CurrentPageIndex=e.NewPageIndexDataGrid1.DataBind() 程序运行后,点击下一页数据开始改变,(四)使用DataGrid控件,也可把前一页,后一页的超级链接改成“1,2,3”的显示方式。将模式下拉框改为页码。也可用程序修改: DataGrid1.PagerStyle.Mode=PagerMode

24、.NumericPages表6-5 与DataGrid分页相关的属性,(四)使用DataGrid控件,表6-5 与DataGrid分页相关的属性,(四)使用DataGrid控件,案例6-9 使用DataGrid的绑定列 使用绑定列以指定要显示数据源中的那些列、自定义每列的表头和脚注以及控制排序 步骤1:选中控件,击属性生成器链接。 步骤2:单击列选项卡 步骤3:清除在运行时自动创建列复选框 步骤4:在可用列框中,选择绑定列,然后单击“添加”按钮 P111,(四)使用DataGrid控件,案例6-10 对DataGrid的数据进行排序 DataGrid控件本身不对行做事迹排序,其排序必须通过其绑

25、定的数据源本身的排序来实现。数据源根据用户在DataGrid上所选择的排序表达式返回已经排序过的记录集。 通过设置DataGrid的AllowSorting属性为True来触发DataGrid内置的排序机制。本案例在案例6-9的基础上修改,(四)使用DataGrid控件,步骤1:在DataGrid的属性生成器中设置允许排序属性,或者直接设置:DataGrid1.AllowSorting=True 步骤2:将绑定列的排序表达式设置为与该列的数据字段相同。即设置SortExpression属性 步骤3:切换到代码编辑窗口,在类中选择DataGrid,选择事件DataGrid1_SortComman

26、d,通过该方法可以获得当前需要排序的表达式。可以通过添加一个Label控件来显示。其代码如下:Label1.text=“当前需要排序的是:”&e.SortExpression.ToString 步骤4:要实现排序,必须使用DataView的sort属性。DataView能够创建DataTable中所存储的数据的不同视图,每个DataTable都有一个DefaultView。 为此,将获取数据的代码修改一下,单独创建一个Bind_Data(),(四)使用DataGrid控件,本案例实现了在DataGrid中的列排序功能,当我们点击列标题时,数据按照该列进行升序排序。见 6-10.asp.vb,(

27、四)使用DataGrid控件,案例 6-11对DataGrid的数据进行排序(具有升序和讲叙自动切换功能) 需要对案例6-10中的SortCommand事件代码作一些修改。在该代码中,不仅要传递排序字段,还要传递排序方向(升序/降序)的信息。实际是在该事件中把上一次的排序方向颠倒一下 在本例中,引入两个ViewState变量:ViewState(“SortString”)保存上一次点击的排序字段,ViewState(“IsAscending”)保存上一次的排序方向(True:表示升序False:表示降序)。设计思路:,(四)使用DataGrid控件,如果本次排序的字段名和上次排序的字段名相同,表明本次点击的是同一个列标题,用户是需要做排序方向的转换; 如果本次排序的字段名和上次排序的字段名不同,说明用户点击了另一个列标题,用户需要对新的列进行排序。排序涉及到的代码及案例6-10中的Bind_Data代码修改为:见 6-11,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报