Presentation is loading. Please wait.

Presentation is loading. Please wait.

主 讲 教 师:陆有军 E-Mail地址:tjlyj@mail.tongji.edu.cn Web技术与应用 第六章 ADO.NET 主 讲 教 师:陆有军 E-Mail地址:tjlyj@mail.tongji.edu.cn.

Similar presentations


Presentation on theme: "主 讲 教 师:陆有军 E-Mail地址:tjlyj@mail.tongji.edu.cn Web技术与应用 第六章 ADO.NET 主 讲 教 师:陆有军 E-Mail地址:tjlyj@mail.tongji.edu.cn."— Presentation transcript:

1 主 讲 教 师:陆有军 E-Mail地址:tjlyj@mail.tongji.edu.cn
Web技术与应用 第六章 ADO.NET 主 讲 教 师:陆有军

2 本 章 内 容 ADO.NET简介 简单存取数据库 使用数据控件存取数据库 深入进行数据库编程 2018/11/27 ADO.NET

3 本章内容 ADO.NET简介 ADO.NET模型 ADO.NET结构 数据库操作过程 2018/11/27 ADO.NET

4 ADO.NET简介 << 本章内容
2 之 1 ADO.NET模型 ADO.NET ( ActiveX Data Object .NET ) 是功能强大的数据访问接口,通过它访问数据库的编程接口如下图所示。 2018/11/27 ADO.NET

5 ADO.NET模型 SQL Server .NET和OLE DB .NET数据提供程序访问物理数据库的结构如下图所示: 2018/11/27
2 之 2 ADO.NET模型 SQL Server .NET和OLE DB .NET数据提供程序访问物理数据库的结构如下图所示: 2018/11/27 ADO.NET

6 ADO.NET简介 << 本章内容
5 之 1 ADO.NET结构 2018/11/27 ADO.NET

7 ADO.NET的核心对象 对 象 说 明 Connection 建立与特定数据库的连接。 Command 对数据库执行SQL命令。
5 之 2 ADO.NET的核心对象 对 象 说 明 Connection 建立与特定数据库的连接。 Command 对数据库执行SQL命令。 DataReader 从数据库中读取只进且只读的数据。 DataAdapter 用于将数据填充到 DataSet。 DataSet 内存中的数据库,可读写。 2018/11/27 ADO.NET

8 ADO.NET简介 << 本章内容
5 之 3 数据库存取的两种方式 方式一 利用Connetction、Command和DataReader对象,这种方式只能读取数据库,也就是说不能修改记录。 方式二 利用Connection、DataAdapter和DataSet对象,这种方式更灵活,可以对数据库进行各种操作。 2018/11/27 ADO.NET

9 ADO.NET的具体对象 对 象 OLE DB数据库 SQL Server数据库 Connection OleDbConnection
5 之 4 ADO.NET的具体对象 对 象 OLE DB数据库 SQL Server数据库 Connection OleDbConnection SqlConnection Command OleDbCommand SqlCommand DataReader OleDbDataReader SqlDataReader DataAdapter OleDbDataAdapter SqlDataAdapter DataSet 2018/11/27 ADO.NET

10 名称空间的两种导入方式 方式一:用来存取OLE DB数据库 方式二:用来存取SQL Server数据库
ADO.NET简介 << 本章内容 5 之 5 名称空间的两种导入方式 方式一:用来存取OLE DB数据库 Import Namespace="System.Data" %> Import Namespace="System.Data.OleDb" %> 方式二:用来存取SQL Server数据库 Import Namespace="System.Data.SqlClient" %> 2018/11/27 ADO.NET

11 ADO.NET数据库操作过程 导入相应的命名空间; 用Connection对象建立与数据库的连接;
用Command或DataAdapter执行SQL的Select、Insert、Update或Delete命令,对数据库进行查询、插入、更新和删除等操作; 通过DataSet或DataReader对象访问数据; 使用数据显示控件或输出语句显示数据对象。 2018/11/27 ADO.NET

12 简单存取数据库 数据库准备 利用Select语句查询记录 利用Insert语句插入记录 利用Update语句更新记录
本章内容 简单存取数据库 数据库准备 利用Select语句查询记录 利用Insert语句插入记录 利用Update语句更新记录 利用Delete语句删除记录 2018/11/27 ADO.NET

13 数据库准备 C:\inetpub\wwwroot\asp.net\chapter6\wwwlink.mdb
简单存取数据库 << 本章内容 数据库准备 C:\inetpub\wwwroot\asp.net\chapter6\wwwlink.mdb 提示:要特别注意数据库文件的权限(首先去掉只读属性,对于采用NTFS文件系统的Windows系统还需设置该数据库为EveryOne可以完全控制) 。 2018/11/27 ADO.NET

14 利用Select语句查询记录 一般步骤 首先利用Connection对象建立和数据库的连接; 然后建立Command对象,执行查询语句命令;
简单存取数据库 << 本章内容 8 之 1 利用Select语句查询记录 一般步骤 首先利用Connection对象建立和数据库的连接; 然后建立Command对象,执行查询语句命令; 利用Command对象的ExecuteReader方法建立DataReader对象,从数据库获取数据。 DataReader对象返回的数据可以看作一个记录集,在记录集中移动记录指针就可以依次显示所有的记录了。 2018/11/27 ADO.NET

15 例:显示数据库的记录 6-1.aspx 运行结果 2018/11/27 ADO.NET 简单存取数据库 << 本章内容
8 之 2 例:显示数据库的记录 6-1.aspx 运行结果 2018/11/27 ADO.NET

16 Connection对象 语法格式: Dim 对象名 As New SqlConnection([ConnectionString])
简单存取数据库 << 本章内容 8 之 3 Connection对象 语法格式: Dim 对象名 As New SqlConnection([ConnectionString]) Dim 对象名 As New OleDbConnection([ConnectionString]) ConnectionString属性通常包括以下参数(连接OLE DB数据源) Provider:设置数据源的OLE DB驱动程序。 Data Source:设置数据源的实际路径。 Password:设置登录数据库时所使用的密码。 User ID:设置登录数据库时所使用的帐号。 2018/11/27 ADO.NET

17 Connection对象常用属性和方法 常用属性 常用方法 2018/11/27 ADO.NET 简单存取数据库 << 本章内容
8 之 4 Connection对象常用属性和方法 常用属性 常用方法 2018/11/27 ADO.NET

18 简单存取数据库 << 本章内容 8 之 5 Command对象 语法格式: Dim 对象名 As New OleDbCommand(cmdText,connection) 'OLE DB数据源 Dim 对象名 As New SqlCommand(cmdText,connection) 'SQL Server数据库 其中cmdText为需执行的SQL命令,connection为使用的数据库连接对象。 2018/11/27 ADO.NET

19 Command对象常用属性和方法 常用属性 常用方法 2018/11/27 ADO.NET 简单存取数据库 << 本章内容
8 之 6 Command对象常用属性和方法 常用属性 常用方法 2018/11/27 ADO.NET

20 DataReader对象 语法格式: 常用属性: Dim 对象名 As New OleDbDataReader 2018/11/27
简单存取数据库 << 本章内容 8 之 7 DataReader对象 语法格式: Dim 对象名 As New OleDbDataReader 常用属性: 2018/11/27 ADO.NET

21 简单存取数据库 << 本章内容 8 之 8 DataReader对象常用方法 2018/11/27 ADO.NET

22 利用Insert语句插入记录 一般步骤: 首先利用Connection对象建立和数据库的连接;
简单存取数据库 << 本章内容 2 之 1 利用Insert语句插入记录 一般步骤: 首先利用Connection对象建立和数据库的连接; 然后建立Command对象,执行查询语句命令; 利用Command对象的ExecuteNonQuery()方法插入记录。 2018/11/27 ADO.NET

23 简单存取数据库 << 本章内容 2 之 2 例:插入记录 6-2.aspx 运行结果 2018/11/27 ADO.NET

24 利用Update语句更新记录 一般步骤: 提示: 首先利用Connection对象建立和数据库的连接。
简单存取数据库 << 本章内容 2 之 1 利用Update语句更新记录 一般步骤: 首先利用Connection对象建立和数据库的连接。 然后建立Command对象,执行查询语句命令。 利用Command对象的ExecuteNonQuery()方法插入记录。 提示: 更新记录和插入记录很类似,区别只是SQL语句。 2018/11/27 ADO.NET

25 简单存取数据库 << 本章内容 2 之 2 例:更新记录 6-3.aspx 运行结果 2018/11/27 ADO.NET

26 利用Delete语句删除记录 一般步骤: 提示: 首先利用Connection对象建立和数据库的连接。
简单存取数据库 << 本章内容 2 之 1 利用Delete语句删除记录 一般步骤: 首先利用Connection对象建立和数据库的连接。 然后建立Command对象,执行查询语句命令。 利用Command对象的ExecuteNonQuery()方法删除记录。 提示: 删除记录和插入记录很类似,区别只是SQL语句。 2018/11/27 ADO.NET

27 简单存取数据库 << 本章内容 2 之 2 例:删除记录 6-4.aspx 运行结果 2018/11/27 ADO.NET

28 本章内容 使用数据控件存取数据库 DataGrid控件 DataList控件 Repeater控件 2018/11/27 ADO.NET

29 DataGrid控件 概述 数据显示 数据编辑 高级功能 2018/11/27 ADO.NET
使用数据控件存取数据库 << 本章内容 DataGrid控件 概述 数据显示 数据编辑 高级功能 2018/11/27 ADO.NET

30 DataGrid控件 << 使用数据控件存取数据库 << 本章内容
概 述 DataGrid控件是一个功能强大的数据显示和处理控件,不但可以灵活地控制数据的显示格式,包括设置表格的显示特性、显示或隐藏列等,还可以对数据进行编辑,并且更有特点的是DataGrid控件提供了独有的数据排序与分页显示功能,是最常用的数据显示控件。 2018/11/27 ADO.NET

31 DataGrid控件的基本语法 <ASP:DataGrid Id="控件名称"
14 之 1 DataGrid控件的基本语法 <ASP:DataGrid Id="控件名称" HeaderStyle-BackColor="表示标题栏背景颜色" Width="宽度值,可以使用像素值或百分比" OnEditCommand="单击编辑按钮时的事件名称" OnUpdateCommand="单击更新按钮时的事件名称" OnCancelCommand="单击取消按钮时的事件名称" OnDeleteCommand="单击删除按钮时的事件名称" OnItemCommand="单击其它按钮时的事件名称" DataKeyField="关键字段,类似于数据库中的主键" AutoGenerateColumns="是否自动产生每一列" runat="server" /> 2018/11/27 ADO.NET

32 将数据绑定到DataGrid控件的语法 DataGrid控件名称.DataSource=数据对象
14 之 2 将数据绑定到DataGrid控件的语法 DataGrid控件名称.DataSource=数据对象 DataGrid控件名称.DataBind() 2018/11/27 ADO.NET

33 DataGrid控件 << 使用数据控件存取数据库 << 本章内容
14 之 3 查询记录的两种方式 2018/11/27 ADO.NET

34 第一种方式 一般步骤: 利用Connection对象建立和数据库的连接; 建立Command对象执行查询语句命令;
DataGrid控件 << 使用数据控件存取数据库 << 本章内容 14 之 4 第一种方式 一般步骤: 利用Connection对象建立和数据库的连接; 建立Command对象执行查询语句命令; 利用Command对象的ExecuteReader方法建立DataReader对象; 将DataReader对象绑定到数据绑定控件。 2018/11/27 ADO.NET

35 例:查询记录 6-5.aspx 运行结果 2018/11/27 ADO.NET
DataGrid控件 << 使用数据控件存取数据库 << 本章内容 14 之 5 例:查询记录 6-5.aspx 运行结果 2018/11/27 ADO.NET

36 第二种方式 一般步骤: 利用Connection对象建立和数据库的连接; 建立Command对象执行查询语句命令;
DataGrid控件 << 使用数据控件存取数据库 << 本章内容 14 之 6 第二种方式 一般步骤: 利用Connection对象建立和数据库的连接; 建立Command对象执行查询语句命令; 建立DataAdapter对象; 建立DataSet对象; 使用DataAdapter对象的Fill方法填充DataSet对象; 将DataSet对象绑定到数据绑定控件。 2018/11/27 ADO.NET

37 例:查询记录 6-6.aspx 运行结果 2018/11/27 ADO.NET
DataGrid控件 << 使用数据控件存取数据库 << 本章内容 14 之 7 例:查询记录 6-6.aspx 运行结果 2018/11/27 ADO.NET

38 提 示 不需要明确打开和关闭数据库连接。DataAdapter对象会自动打开和关闭数据库连接。
DataGrid控件 << 使用数据控件存取数据库 << 本章内容 14 之 8 提 示 不需要明确打开和关闭数据库连接。DataAdapter对象会自动打开和关闭数据库连接。 可以省略Command对象直接建立DataAdapter对象。这样将隐含建立Command对象,例如: Dim conn As New OleDbConnection(数据库连接字符串) Dim adp As New OleDbDataAdapter(SQL语句字符串,conn) Dim ds New DataSet() Adp.Fill(ds,”link”) MyDataGrid.DataSource=DS.Tables(“link”).DafaultView MyDataGrid.DataBind() 2018/11/27 ADO.NET

39 DataAdapter对象 语法格式 Dim 对象名 As New OleDbDataAdapter()
DataGrid控件 << 使用数据控件存取数据库 << 本章内容 14 之 9 DataAdapter对象 语法格式 Dim 对象名 As New OleDbDataAdapter() Dim 对象名 As New OleDbDataAdapter (OleDbCommand对象) Dim 对象名 As New OleDbDataAdapter (SQL命令串,OleDbConnection对象) Dim 对象名 As New OleDbDataAdapter (SQL命令串,连接字符串) 2018/11/27 ADO.NET

40 DataAdapter对象常用属性 2018/11/27 ADO.NET
DataGrid控件 << 使用数据控件存取数据库 << 本章内容 14 之 10 DataAdapter对象常用属性 2018/11/27 ADO.NET

41 DataAdapter对象常用方法 2018/11/27 ADO.NET
DataGrid控件 << 使用数据控件存取数据库 << 本章内容 14 之 11 DataAdapter对象常用方法 2018/11/27 ADO.NET

42 DataAdapter对象常用事件 2018/11/27 ADO.NET
DataGrid控件 << 使用数据控件存取数据库 << 本章内容 14 之 12 DataAdapter对象常用事件 2018/11/27 ADO.NET

43 DataSet对象 语法格式 Dim 对象名 As New DataSet() Dim 对象名 As New DataSet(数据集名)
DataGrid控件 << 使用数据控件存取数据库 << 本章内容 14 之 13 DataSet对象 语法格式 Dim 对象名 As New DataSet() Dim 对象名 As New DataSet(数据集名) 注意:创建DataSet对象后,必须使用DataAdapter对象的Fill方法将数据表记录填入DataSet对象。在Fill方法中使用的srcTable参数所指定的表名,并不是数据库中的表名称,而是DataSet对象中的表名。 2018/11/27 ADO.NET

44 DataSet对象的常用属性 2018/11/27 ADO.NET
DataGrid控件 << 使用数据控件存取数据库 << 本章内容 14 之 14 DataSet对象的常用属性 2018/11/27 ADO.NET

45 例:插入记录 6-7.aspx 运行结果 2018/11/27 ADO.NET
DataGrid控件 << 使用数据控件存取数据库 << 本章内容 14 之 1 例:插入记录 6-7.aspx 运行结果 2018/11/27 ADO.NET

46 提 示 变量不能直接写在SQL字符串中,所以必须要用连接符&将变量和字符串连接在一起。
DataGrid控件 << 使用数据控件存取数据库 << 本章内容 14 之 2 提 示 变量不能直接写在SQL字符串中,所以必须要用连接符&将变量和字符串连接在一起。 文本字段值两边要加引号,如果引号嵌套需要改为单引号(或两个双引号)。 日期字段值两边要加#号(但是SQL数据库中要改为引号) 2018/11/27 ADO.NET

47 DataGrid控件 << 使用数据控件存取数据库 << 本章内容
14 之 3 更新记录 需要在表格中添加一列"编辑"按钮。当单击"编辑"时,就会调用OnEditCommand事件过程,相应的行的每一个字段就会显示为一个文本框。输入完毕,单击“更新”时,就会调用OnUpdateCommand事件过程,就可以用文本框中的值更新。单击"取消",就会调用OnCancelCommand事件过程,取消本次操作。 2018/11/27 ADO.NET

48 分步讲解 第1步:DataGrid控件部分 第2步:Page_Load过程及有关子程序 第3步:编辑按钮对应事件过程
14 之 4 分步讲解 第1步:DataGrid控件部分 第2步:Page_Load过程及有关子程序 第3步:编辑按钮对应事件过程 第4步:更新按钮对应事件过程 第5步:取消按钮对应事件过程 2018/11/27 ADO.NET

49 DataGrid控件 << 使用数据控件存取数据库 << 本章内容
14 之 5 第1步:DataGrid控件部分 首先要添加编辑列并使用DataKeyField=“link_id”指定了关键字段为link_id。关键字段是唯一的,用来确定每行的唯一性。 6-8.aspx 2018/11/27 ADO.NET

50 第2步:Page_Load过程及有关子程序
DataGrid控件 << 使用数据控件存取数据库 << 本章内容 14 之 6 第2步:Page_Load过程及有关子程序 If 语句表示如果没有提交页面就调用数据绑定子程序。客户提交表单后,仍然会执行Page_Load过程,然后再执行事件过程,不过在Page_Load中将不再绑定数据。 6-8.aspx 2018/11/27 ADO.NET

51 DataGrid控件 << 使用数据控件存取数据库 << 本章内容
14 之 7 第3步:编辑按钮对应事件过程 E.Item.ItemIndex会返回用户要编辑的行索引号,然后将行号赋值给DataGrid控件的EditItemIndex属性,最后再调用过程绑定数据。 6-8.aspx 2018/11/27 ADO.NET

52 第4步:更新按钮对应事件过程 更新过程是从控件中返回值。 注意获取控件值的方式。 注意获取关键字段值的方式和作用。 6-8.aspx
DataGrid控件 << 使用数据控件存取数据库 << 本章内容 14 之 8 第4步:更新按钮对应事件过程 更新过程是从控件中返回值。 注意获取控件值的方式。 注意获取关键字段值的方式和作用。 令EditItemIndex属性为-1,然后重新绑定数据,就可取消编辑状态。 6-8.aspx 2018/11/27 ADO.NET

53 第5步:取消按钮对应事件过程 该过程最简单,令EditItemIndex属性为-1,然后重新绑定数据,就可取消编辑状态。 6-8.aspx
DataGrid控件 << 使用数据控件存取数据库 << 本章内容 14 之 9 第5步:取消按钮对应事件过程 该过程最简单,令EditItemIndex属性为-1,然后重新绑定数据,就可取消编辑状态。 6-8.aspx 2018/11/27 ADO.NET

54 删除记录 删除记录和更新记录非常相似,但是更加简单 。下面只讲解DataGrid控件和删除按钮对应事件过程。 2018/11/27
14 之 10 删除记录 删除记录和更新记录非常相似,但是更加简单 。下面只讲解DataGrid控件和删除按钮对应事件过程。 2018/11/27 ADO.NET

55 DataGrid控件 和更新记录类似,只是添加一个“删除”列。 6-9.aspx 2018/11/27 ADO.NET
14 之 11 DataGrid控件 和更新记录类似,只是添加一个“删除”列。 6-9.aspx 2018/11/27 ADO.NET

56 删除按钮对应事件过程 和更新记录类似。 注意其中返回关键字段值的方法和作用。 6-9.aspx
DataGrid控件 << 使用数据控件存取数据库 << 本章内容 14 之 12 删除按钮对应事件过程 和更新记录类似。 注意其中返回关键字段值的方法和作用。 最后令EditItemIndex = -1,重新绑定数据即可。 6-9.aspx 2018/11/27 ADO.NET

57 综合示例 本示例综合前面所学内容,建立一个完整的网络导航网站。网站的重点是如何整合删除、更新等事件过程,请大家自行研究。 资料
DataGrid控件 << 使用数据控件存取数据库 << 本章内容 14 之 13 综合示例 本示例综合前面所学内容,建立一个完整的网络导航网站。网站的重点是如何整合删除、更新等事件过程,请大家自行研究。 资料 在“wwwlink”文件夹下有三个文件: wwwlink.mdb:网站数据库; index.aspx:首页,用来查询记录、更新记录和删除记录; add.aspx:插入记录页面。 2018/11/27 ADO.NET

58 DataGrid控件 << 使用数据控件存取数据库 << 本章内容
14 之 14 上机作业 请参照示例开发用户注册和登录模块,不同的用户对数据库有不同的操作权限(浏览数据库和编辑数据库)。(提示:在注册时将有关信息保存到数据库中;当再次登录时,根据用户输入的用户名和密码在数据库中查找,不同的用户给出不同的页面进行操作。) 2018/11/27 ADO.NET

59 高级功能 分页显示 数据排序 定制列 链接到详细页 自定义页 2018/11/27 ADO.NET
DataGrid控件 << 使用数据控件存取数据库 << 本章内容 高级功能 分页显示 数据排序 定制列 链接到详细页 自定义页 2018/11/27 ADO.NET

60 分页显示 如果将成千上万条记录显示在页面上,既不方便浏览,显示速度也会比较慢,此时最好采用分页显示数据,即:每页只显示若干条记录。
高级功能 << DataGrid控件 << 使用数据控件存取数据库 << 本章内容 3 之 1 分页显示 如果将成千上万条记录显示在页面上,既不方便浏览,显示速度也会比较慢,此时最好采用分页显示数据,即:每页只显示若干条记录。 DataGrid控件内建了自动分页功能,使得数据的分页显示几乎无须编写代码就可容易地实现,这也是DataGrid控件最吸引人之处。 2018/11/27 ADO.NET

61 如何实现分页显示? 在DataGrid控件中添加如下属性: 利用PagerStyle属性设置分页导航栏的样式:
3 之 2 如何实现分页显示? 在DataGrid控件中添加如下属性: AllowPaging="True" '表示允许分页显示 PageSize=“整数值” '每页显示多少条记录 OnPageIndexChanged=“事件过程” '切换到另一页时的事件过程 利用PagerStyle属性设置分页导航栏的样式: PagerStyle-Mode=“ NextPrev | NumericPages” PagerStyle-HorizontalAlign="Left | Right |center" PagerStyle-PrevPageText=“字符串” PagerStyle-NextPageText=“字符串” 在事件过程中只要令DataGride控件的CurrentPageIndex属性为选定的页,然后重新绑定数据即可。 2018/11/27 ADO.NET

62 例:分页显示数据 7-1.aspx 运行结果 2018/11/27 ADO.NET
高级功能 << DataGrid控件 << 使用数据控件存取数据库 << 本章内容 3 之 3 例:分页显示数据 7-1.aspx 运行结果 2018/11/27 ADO.NET

63 数据排序 数据排序必须要在DataGrid控件中添加如下属性:
3 之 1 数据排序 数据排序必须要在DataGrid控件中添加如下属性: AllowSorting="True" '表示允许排序 OnSortCommand= "事件过程" '排序对应的事件过程 排序的中心思想是当单击DataGrid某一列的标题时,就将这一列的字段名称赋值给DataSet对象默认视图的Sort属性,然后就可以按该列排序了。 DS.Tables("link").DefaultView.Sort=SortField MyDataGrid.DataBind() 2018/11/27 ADO.NET

64 排序的具体方法 首先在DataGrid控件中添加相应属性。 其次定义一个页面级变量SortField,用来存放排序字段。
3 之 2 排序的具体方法 首先在DataGrid控件中添加相应属性。 其次定义一个页面级变量SortField,用来存放排序字段。 启动页面时可以令SortField为默认的排序字段link_id,然后绑定数据。 当客户选择了排序的字段后,就令SortField为新的排序字段,然后绑定数据。 2018/11/27 ADO.NET

65 例:对数据进行排序 7-2.aspx 运行结果 2018/11/27 ADO.NET
高级功能 << DataGrid控件 << 使用数据控件存取数据库 << 本章内容 3 之 3 例:对数据进行排序 7-2.aspx 运行结果 2018/11/27 ADO.NET

66 高级功能 << DataGrid控件 << 使用数据控件存取数据库 << 本章内容
4 之 1 定制列 DataGrid控件让用户可以定制每一列,包括每一列的显示内容、顺序和样式等。对于定制列,只要修改DataGrid控件就可以了,其他基本上不用修改。 要定制列,首先需在DataGrid控件中添加属性:AutoGenerateColumns=“False” ,此外还需自己添加BoundColumn、HyperLinkColumn列。 2018/11/27 ADO.NET

67 例:自己定制列 7-3.aspx 运行结果 2018/11/27 ADO.NET
高级功能 << DataGrid控件 << 使用数据控件存取数据库 << 本章内容 4 之 2 例:自己定制列 7-3.aspx 运行结果 2018/11/27 ADO.NET

68 BoundColumn列 用于指定要显示的字段,字段内容为文本数据。主要属性有: 2018/11/27 ADO.NET
高级功能 << DataGrid控件 << 使用数据控件存取数据库 << 本章内容 4 之 3 BoundColumn列 用于指定要显示的字段,字段内容为文本数据。主要属性有: 2018/11/27 ADO.NET

69 HyperLinkColumn列 每个记录的该列都是一个超链接,该列除了拥有与ButtonColumn列相同的属性外,还具有下列的属性:
高级功能 << DataGrid控件 << 使用数据控件存取数据库 << 本章内容 4 之 4 HyperLinkColumn列 每个记录的该列都是一个超链接,该列除了拥有与ButtonColumn列相同的属性外,还具有下列的属性: 2018/11/27 ADO.NET

70 高级功能 << DataGrid控件 << 使用数据控件存取数据库 << 本章内容
3 之 1 链接到详细页 如果一个数据表有很多字段,通常做法是只显示若干重要字段,然后单击一个“详细”超链接,就可以打开一个详细页面,在详细页面中显示所有字段。 要达到以上目的,也只要利用前面讲到的HyperLinkColumn列,只不过链接到一个新的页面即可。 2018/11/27 ADO.NET

71 例:链接到详细页 之一 7-4.aspx 运行结果 2018/11/27 ADO.NET
高级功能 << DataGrid控件 << 使用数据控件存取数据库 << 本章内容 3 之 2 例:链接到详细页 之一 7-4.aspx 运行结果 2018/11/27 ADO.NET

72 例:链接到详细页 之二 7-5.aspx 运行结果 2018/11/27 ADO.NET
高级功能 << DataGrid控件 << 使用数据控件存取数据库 << 本章内容 3 之 3 例:链接到详细页 之二 7-5.aspx 运行结果 2018/11/27 ADO.NET

73 自定义列 可以利用TemplateColumn更加自由的定义每一列。
高级功能 << DataGrid控件 << 使用数据控件存取数据库 << 本章内容 5 之 1 自定义列 可以利用TemplateColumn更加自由的定义每一列。 TemplateColumn就是模板列, 可使用的模板有:HeaderTemplate、ItemTemplate、FooterTemplate、EditItemTemplate模板,这些模板的定义格式与Repeater、DataList控件中相应模板的定义相同。 2018/11/27 ADO.NET

74 语法格式 设置显示记录时的控件 设置编辑记录时的控件 <asp:TemplateColumn >
高级功能 << DataGrid控件 << 使用数据控件存取数据库 << 本章内容 5 之 2 语法格式 <asp:TemplateColumn > <ItemTemplate> 服务器控件 </ItemTemplate> …… <EditItemTemplate> </EditItemTemplate> </asp:TemplateColumn> 设置显示记录时的控件 设置编辑记录时的控件 2018/11/27 ADO.NET

75 例:自定义列 分步讲解: 提示: 第1步:在DataGrid控件中对“网站简介”和“网站评分”两列使用自定义列;
5 之 3 例:自定义列 分步讲解: 第1步:在DataGrid控件中对“网站简介”和“网站评分”两列使用自定义列; 第2步:在更新事件过程中获取文本框控件中和下拉列表框控件中的值,并进行更新。 提示: 其它部分同以前示例。 2018/11/27 ADO.NET

76 第1步:DataGrid控件部分 7-6.aspx 运行结果 2018/11/27 ADO.NET
5 之 4 第1步:DataGrid控件部分 7-6.aspx 运行结果 2018/11/27 ADO.NET

77 高级功能 << DataGrid控件 << 使用数据控件存取数据库 << 本章内容
5 之 5 第2步:更新事件过程部分 2018/11/27 ADO.NET

78 DataList控件 概述 查询记录 选择记录 更新和删除记录 2018/11/27 ADO.NET
使用数据控件存取数据库 << 本章内容 DataList控件 概述 查询记录 选择记录 更新和删除记录 2018/11/27 ADO.NET

79 DataList控件 << 使用数据控件存取数据库 << 本章内容
5 之 1 DataList控件 DataList控件可以绑定数据库,以比DataGrid控件更自由的方式显示数据,例如:可以在1行显示多条记录。不过它的功能没有DataGrid控件强大,例如:不支持分页和排序等。 DataList控件还具有数据编辑功能,可以更新和删除数据。 2018/11/27 ADO.NET

80 语法格式 <asp:DataList id="控件名称"
5 之 2 语法格式 <asp:DataList id="控件名称" RepeatDirection="Vertical | Horizontal,表示垂直/水平显示" RepeatColumns="整数值,表示控件中显示的列数" RepeatLayout=“Table | Flow,表示以表格/流形式显示数据" OnEditCommand="单击编辑按钮时的事件名称" OnUpdateCommand="单击更新按钮时的事件名称" OnCancelCommand="单击取消按钮时的事件名称" OnDeleteCommand="单击删除按钮时的事件名称" OnItemCommand="单击其它按钮时的事件名称" DataKeyField="关键字段,类似于数据库中的主键" runat="server" /> ……模板列 </asp:DataList> 2018/11/27 ADO.NET

81 DataList控件的常用属性 2018/11/27 ADO.NET
5 之 3 DataList控件的常用属性 2018/11/27 ADO.NET

82 DataList控件的常用事件 2018/11/27 ADO.NET
5 之 4 DataList控件的常用事件 2018/11/27 ADO.NET

83 AlternatingItemTemplate
DataList控件 << 使用数据控件存取数据库 << 本章内容 5 之 5 DataList控件的模板 Repeater控件使用模板(可以使用HTML标签和服务器控件自己定义内容和布局)来控制数据的输出格式。 名 称 说 明 ItemTemplate 定义列表中项目的内容和布局,必选 AlternatingItemTemplate 定义交替显示项的内容和布局,可选 SeparatorTemplate 定义各项目之间的分隔符,可选 SelectItemTemplate 定义选中项目的内容和布局,可选 EditItemTemplate 定义正在编辑项目的内容和布局,可选 HeaderTemplate 定义列表标题的内容和布局,可选 FooterTemplate 定义列表脚注的内容和布局,可选 2018/11/27 ADO.NET

84 查询记录 查询记录的步骤和DataGrid控件几乎一致,区别只是声明控件的语法部分。 2018/11/27 ADO.NET
DataList控件 << 使用数据控件存取数据库 << 本章内容 2 之 1 查询记录 查询记录的步骤和DataGrid控件几乎一致,区别只是声明控件的语法部分。 2018/11/27 ADO.NET

85 例:查询记录 7-7.aspx 运行结果 2018/11/27 ADO.NET
DataList控件 << 使用数据控件存取数据库 << 本章内容 2 之 2 例:查询记录 7-7.aspx 运行结果 2018/11/27 ADO.NET

86 选择记录 SelectedItemTemplate模板可以设定选中项的内容和样式。 步骤: 添加一个LinkButton控件;
DataList控件 << 使用数据控件存取数据库 << 本章内容 3 之 1 选择记录 SelectedItemTemplate模板可以设定选中项的内容和样式。 步骤: 添加一个LinkButton控件; 添加SelectedItemTemplate模板; 设置OnItemCommand属性对应的事件过程:设置SelectedIndex属性为选中项,然后重新绑定数据即可。 2018/11/27 ADO.NET

87 例:DataList控件部分 7-8.aspx 2018/11/27 ADO.NET
3 之 2 例:DataList控件部分 7-8.aspx 2018/11/27 ADO.NET

88 例:事件过程部分 7-8.aspx 运行结果 2018/11/27 ADO.NET
DataList控件 << 使用数据控件存取数据库 << 本章内容 3 之 3 例:事件过程部分 7-8.aspx 运行结果 2018/11/27 ADO.NET

89 更新和删除记录 利用DataList控件可以更新和删除记录,此时它和DataGrid控件的操作非常类似。
3 之 1 更新和删除记录 利用DataList控件可以更新和删除记录,此时它和DataGrid控件的操作非常类似。 需要在EditItemTemplate列中自己定义编辑时的内容和样式; 需要添加OnEditCommand、OnUpdateCommand、OnCancelCommand、OnDeleteCommand事件属性,分别对应单击编辑、更新、取消和删除按钮时的事件过程; 需要利用DataKeyField属性设置关键字段。 在ItemTemplate和EditItemTemplate列中要分别添加几个LinkButton控件,当单击这些按钮时就会触发相应的事件过程。 2018/11/27 ADO.NET

90 例:DataList控件部分 7-9.aspx 2018/11/27 ADO.NET
3 之 2 例:DataList控件部分 7-9.aspx 2018/11/27 ADO.NET

91 例:事件过程部分 7-9.aspx 2018/11/27 ADO.NET
DataList控件 << 使用数据控件存取数据库 << 本章内容 3 之 3 例:事件过程部分 7-9.aspx 2018/11/27 ADO.NET

92 使用数据控件存取数据库 << 本章内容
Repeater控件 概述 查询记录 选择记录 2018/11/27 ADO.NET

93 Repeater控件 Repeater控件可以用来绑定数据库,通过模板定义的格式将数据库中的数据显示出来,它只支持查询记录。
5 之 1 Repeater控件 Repeater控件可以用来绑定数据库,通过模板定义的格式将数据库中的数据显示出来,它只支持查询记录。 2018/11/27 ADO.NET

94 语法格式 <ASP:Repeater Runat="Server“ Id=“控件名称“
5 之 2 语法格式 <ASP:Repeater Runat="Server“ Id=“控件名称“ DataSource="<%#数据来源%>“ OnItemCommand="…“ OnItemCreate="…“ OnItemDataBound="…"> <模板名称>HTML格式的模板</模板名称> </ASP:Repeater> 2018/11/27 ADO.NET

95 Repeater控件 << 使用数据控件存取数据库 << 本章内容
5 之 3 模 板 Repeater控件使用模板(可以使用HTML标签和服务器控件自己定义内容和布局)来控制数据的输出格式。Repaeter控件可使用5种模板,分别是: 2018/11/27 ADO.NET

96 Repeater控件的主要属性 2018/11/27 ADO.NET
5 之 4 Repeater控件的主要属性 2018/11/27 ADO.NET

97 Repeater控件 << 使用数据控件存取数据库 << 本章内容
5 之 5 Repeater控件的事件 OnItemCommand是最常用的事件,该事件的参数为RepeaterCommandEventArgs,此参数可取的值为: 2018/11/27 ADO.NET

98 查询记录 数据的绑定和DataList类似,关键是声明DataList控件的部分。 2018/11/27 ADO.NET
Repeater控件 << 使用数据控件存取数据库 << 本章内容 2 之 1 查询记录 数据的绑定和DataList类似,关键是声明DataList控件的部分。 。/。/,,,,,,,,,,,,,,,,,,,,,,,,,,,,/,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 2018/11/27 ADO.NET

99 例:查询记录 7-10.aspx 运行结果 2018/11/27 ADO.NET
Repeater控件 << 使用数据控件存取数据库 << 本章内容 2 之 2 例:查询记录 7-10.aspx 运行结果 2018/11/27 ADO.NET

100 选择记录 Repeater控件不仅可以用来查询记录,其实也可以其中添加LinkButton控件,单击该按钮就可以执行相应的事件过程。 步骤:
3 之 1 选择记录 Repeater控件不仅可以用来查询记录,其实也可以其中添加LinkButton控件,单击该按钮就可以执行相应的事件过程。 步骤: 首先在模板中添加一个LinkButton控件,然后要设置OnItemCommand属性对应的事件过程; 在事件过程中进行有关操作,最后重新绑定数据即可。 2018/11/27 ADO.NET

101 例: Repeater控件部分 7-11.aspx 运行结果 2018/11/27 ADO.NET
3 之 2 例: Repeater控件部分 7-11.aspx 运行结果 2018/11/27 ADO.NET

102 例:事件过程部分 7-11.aspx 运行结果 此种方法经常被用来设计购物车 2018/11/27 ADO.NET
Repeater控件 << 使用数据控件存取数据库 << 本章内容 3 之 3 例:事件过程部分 7-11.aspx 运行结果 此种方法经常被用来设计购物车 2018/11/27 ADO.NET

103 深入进行数据库编程 使用含有参数的SQL语句 对多个表进行操作 存取SQL数据库 DataSet对象 2018/11/27 ADO.NET
本章内容 深入进行数据库编程 使用含有参数的SQL语句 对多个表进行操作 存取SQL数据库 DataSet对象 2018/11/27 ADO.NET

104 使用含有参数的SQL语句 在很多的应用中,查询的条件往往是在执行中产生的,此时需要使用带参数的SQL语句。
深入进行数据库编程 << 本章内容 4 之 1 使用含有参数的SQL语句 在很多的应用中,查询的条件往往是在执行中产生的,此时需要使用带参数的SQL语句。 带参数的SQL语句有两种写法:一种是前面使用到的写法,还有一种是通过Command对象来实现。 Command对象可以执行带参数的查询,参数值通过Command对象的Parameter参数集合向SQL语句传递。SQL语句中的每个参数对应到Parameter参数集合中的一个元素。 2018/11/27 ADO.NET

105 "Select * From link Where sitename = @sitename"
深入进行数据库编程 << 本章内容 4 之 2 使用方法 "Select * From link Where sitename 当需要给该参数赋值时,可以使用Command对象建立参数对象,然后再赋值。 cmd.Parameters.Add(New OleDbType.Char,20)) 2018/11/27 ADO.NET

106 Parameter参数集合的常用属性/方法
深入进行数据库编程 << 本章内容 4 之 3 Parameter参数集合的常用属性/方法 属性 方法 2018/11/27 ADO.NET

107 例:使用参数的SQL语句 7-12.aspx 运行结果 2018/11/27 ADO.NET 深入进行数据库编程 << 本章内容
4 之 4 例:使用参数的SQL语句 7-12.aspx 运行结果 2018/11/27 ADO.NET

108 深入进行数据库编程 << 本章内容
4 之 1 wwwlink.mdb中的两张表 2018/11/27 ADO.NET

109 深入进行数据库编程 << 本章内容
4 之 2 组合查询 只要使用组合查询的SQL语句就可以了,其它和前面的查询例子都一样。例如:现在要显示网站编号ID、网站名称sitename、年份fyear、收入income四个字段,并且要按网站名称和年份排序,则必须将Select语句写成如下形式: Select link.link_id,link.sitename, finance.fyear, finance.income From link,finance Where link.link_id=finance.link_id Order By link.sitename,finance.fyear 2018/11/27 ADO.NET

110 深入进行数据库编程 << 本章内容
4 之 3 更新和删除操作 Select语句可以使用多个表,但是Insert、Update和Delete语句只能对1个表进行操作。例如,当需要同时删除两个表中的数据的时候,就需要大家手工一个表一个表进行。 2018/11/27 ADO.NET

111 例:对多个表进行删除 7-13.aspx 运行结果 2018/11/27 ADO.NET 深入进行数据库编程 << 本章内容
4 之 4 例:对多个表进行删除 7-13.aspx 运行结果 2018/11/27 ADO.NET

112 SQL Server数据库 SQL数据库是微软推出的大型网络数据库,效率更高,运行更稳定。对于大型网站,还是建议采用SQL数据库。
深入进行数据库编程 << 本章内容 3 之 1 SQL Server数据库 SQL数据库是微软推出的大型网络数据库,效率更高,运行更稳定。对于大型网站,还是建议采用SQL数据库。 2018/11/27 ADO.NET

113 深入进行数据库编程 << 本章内容
3 之 2 建立SQL Server数据库 建立一个数据库wwwlink,然后再建立表link,字段结构如下图所示。然后再为其添加用户test,密码是1234。 2018/11/27 ADO.NET

114 存取SQL Server数据库 使用第一套类库,数据库连接字符串为:
深入进行数据库编程 << 本章内容 3 之 3 存取SQL Server数据库 使用第一套类库,数据库连接字符串为: Provider=SqlOleDb.1;Data Source=localhost; initial Catalog=wwwlink;Uid=test;Pwd=1234 使用第二套类库,数据库连接字符串为: Server=localhost;Database=wwwlink; Uid=test;Pwd=1234 其它部分和读取Access数据库基本一致。特别注意:日期字段值两边不用#号,而改用引号。 2018/11/27 ADO.NET

115 DataSet对象 概述 建立DataSet对象 对DataSet对象的操作 将DataSet对象中的更新写回数据库 2018/11/27
深入进行数据库编程 << 本章内容 DataSet对象 概述 建立DataSet对象 对DataSet对象的操作 将DataSet对象中的更新写回数据库 2018/11/27 ADO.NET

116 DataSet对象 DataSet对象可以由数据库、XML或手工建立,它是和数据源断开的。
3 之 1 DataSet对象 DataSet对象可以由数据库、XML或手工建立,它是和数据源断开的。 DataSet对象其实就像内存中的数据库,具有表、行、列、主键、关系等。 它需要借助DataAdapter对象将更新反映到数据源中。 2018/11/27 ADO.NET

117 DataSet对象 << 深入进行数据库编程 << 本章内容
3 之 2 DataSet对象模型 2018/11/27 ADO.NET

118 DataSet对象 << 深入进行数据库编程 << 本章内容
3 之 3 DataSet对象结构 2018/11/27 ADO.NET

119 建立DataSet对象 填充DataSet对象的三种方法: 由数据库中填充(前已介绍) 从XML文件中填充 (自学)
3 之 1 建立DataSet对象 填充DataSet对象的三种方法: 由数据库中填充(前已介绍) 从XML文件中填充 (自学) 完全手工填充(下面举例) 2018/11/27 ADO.NET

120 例:手工建立DataSet对象 之一 7-15.aspx 2018/11/27 ADO.NET
3 之 2 例:手工建立DataSet对象 之一 7-15.aspx 2018/11/27 ADO.NET

121 例:手工建立DataSet对象 之二 7-15.aspx 运行结果 2018/11/27 ADO.NET
3 之 3 例:手工建立DataSet对象 之二 7-15.aspx 运行结果 2018/11/27 ADO.NET

122 对DataSet对象的操作 之一 删除列的一般方法是: dt.Columns.Remove("submit_date")
3 之 1 对DataSet对象的操作 之一 删除列的一般方法是: dt.Columns.Remove("submit_date") 删除行的一般方法是: dr= dt.Rows(行编号) ‘首先定位到该行 dr.Delete ‘然后使用delete方法 修改值的一般方法是: dr= dt.Rows(行编号) ‘首先定位到该行 dr(“列名称”)=值 ‘然后对指定列赋值 返回表中行数目的方法是: number=dt.Rows.Count 2018/11/27 ADO.NET

123 对DataSet对象的操作 之二 返回表中列数目的方法是: number=dt.Columns.Count 对列进行排序的一般方法是:
3 之 2 对DataSet对象的操作 之二 返回表中列数目的方法是: number=dt.Columns.Count 对列进行排序的一般方法是: ds.Tables(表编号).DeaultView.Sort="列名称 DESC" 对行进行筛选的一般方法是: ds.Tables(表编号).DeaultView.RowFilter="条件“ …… 2018/11/27 ADO.NET

124 例:对DataSet对象进行操作 7-16.aspx 运行结果 2018/11/27 ADO.NET
3 之 3 例:对DataSet对象进行操作 7-16.aspx 运行结果 2018/11/27 ADO.NET

125 DataSet对象 << 深入进行数据库编程 << 本章内容
6 之 1 将DataSet对象中的更新写回数据库 DataSet对象是和数据库断开的,如果要将改变更新到数据库中,就需要借助DataAdapter对象。 2018/11/27 ADO.NET

126 例:程序要求 用Session保存Dataset对象: 第1次打开时读取原始数据,并将DataSet对象保存到Session中;
6 之 2 例:程序要求 用Session保存Dataset对象: 第1次打开时读取原始数据,并将DataSet对象保存到Session中; 当单击编辑和删除时,首先从Session中读取DataSet对象,然后对其进行操作,随后再保存到Session中; 最后如果要保存修改结果,就利用DataAdapter对象,将修改反应到数据库中;如果放弃修改,就重新从数据库中读取原有数据。 2018/11/27 ADO.NET

127 例:初始化部分 7-17.aspx 2018/11/27 ADO.NET
DataSet对象 << 深入进行数据库编程 << 本章内容 6 之 3 例:初始化部分 7-17.aspx 2018/11/27 ADO.NET

128 DataSet对象 << 深入进行数据库编程 << 本章内容
6 之 4 例:更新部分 7-17.aspx 2018/11/27 ADO.NET

129 DataSet对象 << 深入进行数据库编程 << 本章内容
6 之 5 例:删除部分 7-17.aspx 2018/11/27 ADO.NET

130 例:保存修改部分 7-17.aspx 2018/11/27 ADO.NET
DataSet对象 << 深入进行数据库编程 << 本章内容 6 之 6 例:保存修改部分 7-17.aspx 2018/11/27 ADO.NET

131 上机作业 P236 上机练习题 (2)、(3)、(4) 2018/11/27 ADO.NET


Download ppt "主 讲 教 师:陆有军 E-Mail地址:tjlyj@mail.tongji.edu.cn Web技术与应用 第六章 ADO.NET 主 讲 教 师:陆有军 E-Mail地址:tjlyj@mail.tongji.edu.cn."

Similar presentations


Ads by Google