书签 分享 收藏 举报 版权申诉 / 168
上传文档赚钱

类型ASP.NET程序设计 第6章.ppt

  • 上传人(卖家):momomo
  • 文档编号:7379370
  • 上传时间:2023-12-15
  • 格式:PPT
  • 页数:168
  • 大小:2.63MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《ASP.NET程序设计 第6章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    ASP.NET程序设计 第6章 ASP NET 程序设计
    资源描述:

    1、第6章 ASP.NET数据库操作 本章导读本章导读 本章内容包括数据库基础知识、创建Access数据库一般过程、SQL语句的使用及调试,以及数据控件的使用。重点介绍在ASP.NET中如何使用AccessDataSource控件连接数据库,以及使用如GridView、DataList 和Repeater等数据显示控件显示数据库内容,帮助读者快速掌握在ASP.NET动态网页设计中实现数据库操作。在学习数据库初步操作的基础上,还学习在ASPNET中使用ADO.NET对象,以编程的方法访问数据库的一般步骤和方法,实现更灵活的数据库操作和数据显示。6.1 数据库基础数据库基础 6.1.1 数据库和数据库

    2、管理系统的概念数据库和数据库管理系统的概念 1.数据库 数据库是存储在计算机系统内的一个通用化的、综合性的、有结构的、可共享的数据集合,具有较小的数据冗余和较高的数据独立性、安全性和完整性。数据库的创建、运行和维护是在数据库系统的控制下实现的,并可以为各种用户共享。数据库是一个应用的数据存储和处理的系统,存储一个应用领域有关数据的集合,它独立于开发平台,处于应用系统的后台,能共享提供给各种应用或用户使用,并能提供数据完整性控制、安全性控制和并发控制功能。数据库通常由专门的系统进行管理,管理数据库的系统称为数据库管理系统。数据库用户通常可以分为两类:一类是批处理用户,又称应用程序用户,这类用户使

    3、用程序设计语言编写应用程序,对数据进行检索、插入、删除和修改等操作,并产生数据输出;另一类是联机用户,或称为终端用户。终端用户使用终端命令或查询语言直接对数据库进行操作。2.数据库管理系统 数据库管理系统是一个数据库管理软件,简称DBMS(DataBase Management System)。数据库管理系统是数据库系统的核心。DBMS为用户提供方便的用户接口,帮助和控制每个用户对数据库进行的各种操作,并提供数据库的定义和管理功能。整个数据库的创建、运行和维护,都是在数据库管理系统的控制下实现的。3.数据库应用系统的概念 数据库应用系统是在数据库管理系统支持下运行的一类计算机应用(软件)系统,

    4、简称DBAS(DataBase Application System)。一个数据库应用系统通常由三部分组成,即数据库、应用程序和数据库管理系统。一般的数据库应用系统中,使用通用的数据库管理系统,而数据库和应用程序需要由用户(开发人员)开发。在批处理用户使用的数据库应用系统中,应用程序处于最终用户端(前端),用户直接操纵和使用的是应用程序;而数据库和数据库管理系统则处于系统的后端,它对用户是透明的。因此,这一类数据库应用系统的用户是通过应用程序操作、管理和维护数据库的。4.数据库系统的模型 在数据库中的数据是高度结构化的,数据系统的模型是描述数据库中的数据的结构形式的。主要有三种数据库系统模型,

    5、即层次模型、网状模型和关系模型。目前最常用的数据库都是关系型的。层次型 层次型数据库是以记录为结点构成的树,它把客观事物抽象为一个严格的、自上而下的层次关系。在层次关系中,只存在一对多的实体关系,每一个结点表示一个记录类型,结点之间的连线表示记录之间的联系(只能是父子关系)。层次模型的特点:有且仅有一个根结点无双亲;其他结点有且仅有一个双亲。网状模型网状数据模型是以记录为数据的存储单元,允许多个结点没有双亲结点,允许结点有多个双亲结点。如图6-1所示是一个典型的网状数据模型。关系模型关系数据模型以集合论中的关系(Relation)概念为基础发展起来,是用二维表格结构表示的数据模型。5.关系型数

    6、据库在关系数据模型中,字段称为属性(Attribute),字段的值即属性值,由属性的集合描述记录,记录称为元组(Tuple),元组的集合称为关系(Relation)或实例(Instance)。从二维表格直观地看,表格的行为元组,表格的列为属性。不同的数据通过不同的二维表格存储,各表之间通过关键字段相关联,构成一定的关系。关系模型既能反映属性之间的一对一关系,也能反映属性之间的一对多和多对多关系,图6-2所示是一个典型的关系模型。图6-2 关系模型实例6.1.2 数据库程序设计基础数据库程序设计基础 1.客户/服务器(Client/Server)数据库应用系统 客户/服务器(Client/Ser

    7、ver)是一种分布式数据库管理系统,应用于网络环境。在这种结构的应用系统中,“前端”是应用程序的操作界面,位于用户端(客户端),往往是比较直观和友好的操作界面;“后端”是存放应用系统数据的数据库,位于服务器端。分布式数据库管理系统与桌面数据库管理系统有很大不同,最主要的区别是所有由前端应用程序发出的查询都在服务器端执行,只将查询的结果传送到前端;而在传统的共享式桌面系统中,应用程序发出的查询命令是在客户端执行的,即将服务器端的数据库文件在客户端打开,然后进行查询。2.Web模式的数据库应用系统 Web模式的数据库访问方式与Client/Server模式有很大的不同,其中间件实际是WEB应用程序

    8、,前端(用户端)是浏览器,“后端”是存放应用系统数据的数据库,应用程序升级时,只需要将服务器端的中间件升级即可。由于前端是通用软件(浏览器),一般不需要升级,大量用户的应用系统升级非常方便。3.关系数据库和表 目前使用的大部分数据库都是关系型数据库。一个关系型数据库通过若干个表(Table)存储数据,并且通过关系将这些表联系在一起。表以二维表格形式表示。表是由行和列组成的数据集合,表中一行为一个记录(Record),一列为记录中的一个字段(Field)。例如,表6-1所示的学籍表中,学号、姓名、性别、出生年月等都是字段,每个学生的字段数据构成了该学生的一条记录。学学 号号姓姓 名名性性 别别出

    9、出 生生 年年 月月D001王涛男1982/5/4D002李冰女1982/1/3D003张红女1980/9/17D004郑洁女1980/10/15D005袁明男1981/2/10D006张萍女1980/11/2D007张骏男1980/12/23D008罗娟女1981/5/24 可以将表看成是一种用户自定义类型,表中的每一条记录是这种用户自定义类型的一个变量,字段是这种用户自定义类型的各个分量。例如,若将表6-1称为“学籍表”,该表可以看作是以下用户自定义类型:Structure 学籍表 Dim 学号 As String Dim 姓名 As String Dim 性别 As String Dim

    10、 出生年月 As Date End Structure 其中,“学号”、“姓名”、“性别”和“出生年月”是组成用户自定义类型“学籍表”的四个变量,正好与表中的四个字段对应。表中的所有记录相当于一组被声明为用户自定义类型“学籍表”的变量。2.记录和字段 在二维表格中,每一行数据构成一条记录,记录是数据库管理中操作的基本数据。每一列数据构成了一个字段,每个字段都有相应的字段名、数据类型和数据宽度等结构描述信息。3.查询、视图和存储过程 由数据库中按照关系组合而成的具有实际使用意义的表,称为查询(Query)。查询不是数据库中存储的表,而是按照各种规则和要求“查”出来的表。查询可通过SQL(Stru

    11、ctured Query Language,结构化查询语言)创建。SQL是一种标准的查询语言,几乎所有的关系数据库系统都支持这种语言。各种关系型数据库中的SQL语言有所不同,但最基本的语句和使用方法是一样的。存储在数据库中的查询,称为视图(View)。存储在客户/服务器数据库中的、用SQL语句编写的程序段,称为存储过程(Stored Procedure)。4.SQL语言 SQL语言的主要功能由八个动词来表达,用户只需要写出做什么,即可得到查询的结果。数据查询功能。查询是SQL语言的核心,SQL的查询操作可以从一个或多个表中找出满足条件的元组。SQL中用动词Select实现查询,用Select可

    12、以实现数据库的选择、投影和连接等操作。例如,用以下Select语句即可从数据库中列出满足查询条件的指定字段值:Select From Where 该语句可从所指定的表中取出“字段列表”所指定的字段,并通过“查询条件”进行筛选,只有满足条件的记录才可被选出,从而创建了一个查询。数据定义功能。SQL的数据定义功能包括定义数据库、定义基本表、定义视图和定义索引等。SQL的数据定义可用相应的动词实现,如Create等。数据更新功能。SQL中用动词Insert、Delete和Update实现数据更新。数据控制功能。SQL中用动词Grant、Revote实现数据控制。由于不同的数据库管理系统在实现SQL语

    13、言时各有差别,并且一般都做了某种的扩充。因此,用户在使用时应参阅系统提供的有关手册。5.记录集 记录集即记录的集合,是数据库中一个表或查询(或多个表连接)的一个子集,可以是整个表,也可以是表的一部分。可见,在数据库的表述中,记录集是表或查询的视图。6.2 创建创建Access 2003数据库数据库本节以建立一个简单的订单管理数据库db1.mdb为例,介绍在Microsoft Office Access 2003 中创建数据库的过程。该数据库将作为6.3节中案例使用得数据库。6.2.1 规划表结构规划表结构 建立数据库前,对需要保存的信息进行分析,然后对表结构进行规划。本案例需要进行订单管理,根

    14、据一般订单需要保存的数据。规划表结构如表6-2、表6-3和表6-4所示。表6-2订单表字段名字段名订单编号订单编号产品编号产品编号客户编号客户编号数量数量单价单价下单日期下单日期送货日期送货日期经手人经手人文本(20)文本(20)文本(20)整数数值(2位小数)日期日期文本(20)表6-3产品表 表6-4客户信息表字段名字段名产品编号产品编号产品名称产品名称单位单位规格规格类型(长度)文本(20)文本(50)文本(10)文本(20)字段名字段名客户编号客户编号姓名姓名性别性别生日生日联系电话联系电话公司地址公司地址类型(长度)文本(20)文本(50)是/否日期文本(20)文本(100)6.2.

    15、2 在在Access 2003 中建立表结构中建立表结构 在Access中创建表结构的基本步骤如下:启动Access 2003。在菜单栏上选择“文件新建”选项,在弹出“新建”窗格中选择新建“空数据库”选项,如图6-3所示。选择保存数据库的位置,本例为C:db1.mdb,如图6-4所示。图6-3 “Microsoft Access”对话框 图6-3 “Microsoft Access”对话框 图6-4 “文件新建数据库”对话框图6-4 “文件新建数据库”对话框打开表设计器,用表设计器创建“订单表”,如图6-5所示。双击打开表设计器表设计器图6-5 打开表设计器图6-5 打开表设计器保存为“订单表

    16、”,如图6-6所示。建立好的订单表,双击打开进行数据录入按以上步骤依次建立“产品表”和“客户信息表”,如图6-7和图6-8所示,完成数据库的创建。图6-7 产品表 图6-8 客户信息表6.3 SQL语言初步语言初步 数据库查询语言(SQL)是关系数据库的标准语言,被很多类型的数据库所支持。本节通过实例介绍最常用的操作数据库的SQL语句,如数据查询、删除、添加和更新的实现等。其中,四个最常用的SQL语句是本章使用ASP.NET数据控件的基础,即Select、Insert、delete和Update。更多的细节请参考有关书籍。6.3.1 查询记录的查询记录的Select语句语句 Select语句功

    17、能非常丰富,可以按任意条件从一个表或多个表中查询满足条件的数据,其语法也比较复杂。1.Select语句的一般格式 Select Form Where 条件 例例6-1 查询订单表中所有的数据。命令:Select*From订单表 说明:语句中的*号代表表中所有的字段,也可以按例6-2的方式列出每一个选择选择的字段。例例6-2 以“订单编号”为查询条件,在“订单表”中列出满足条件的记录。命令:Select订单编号,产品编号,客户编号,数量,下单日期,送货日期From订单表 Where 订单编号=A1000 说明:Select 关键字后面需要列出的字段以逗号分隔;由于“订单编号”字段为字符串类型,具

    18、体的值需要用双引号作为定界符。如果将该SQL语句保存到字符串变量中,需要将双引号改为单引号,如下所示:Dim sql As String sql=Select 订单编号,产品编号,客户编号,数量,下单日期,送货日期 From 订单表 Where 订单编号=A1000 例例6-3 查询“订单表”中数量10或下单日期在2007-05-9与2007-09-09之间的订单。命令:Select*From订单表Where数量10 OR(下订日期=#2007-09-09#)说明:条件Where关键字后面,如果字段类型为数字,则值不需要加任何定界符,如果是日期类型,其值必须带#定界符。使用逻辑运算符(And、

    19、Or和Not)连接多个条件。以上三个例子分别是以文本类型、数值类型和日期类型字段作为条件,使用SQL命令查询数据所用的语法。2.在Access中验证SQL语句的方法 在Access中,可以对以上SQL语句的正确性进行验证,检查SQL语句是否正确,以及能否按照条件得到所需要的结果,方法如下:在Access中打开6.2节中建立的数据库,选择“查询”对象,如图6-9所示。进入SQL命令的查询设计模式,如图6-10所示。输入SQL命令及执行命令,如图6-11所示。2134双击添加订单表图6-9 打开数据库,选择查询对象添加的表选择SQL视图以便测试SQL命令图6-10 进入SQL命令查询设计模式1.输

    20、入SQL命令2 执行SQL命令3 执行SQL命令结果4 回到设计视图图6-11 输入并执行SQL命令 例例6-4 统计表的记录数。命令:Select Count(*)as 记录数 From 订单表 说明:在SQL语句中,可以使用内部函数对记录进行统计。Count函数作用是得到表中的记录总数。例例6-5 统计“订单表”中订单编号=A1000 And客户编号=K1 的订货总数量。命令:Select Sum(数量)as 订货量 From订单表 Where 订单编号=A1000 and 客户编号=K1 可以使用Count()和Sum()函数,以及其他函数,如Max()、Min()等。例6-6 在“客户

    21、信息表”中查询姓“张”的客户信息(姓名以张开头)。命令:Select*From 客户信息表 where 姓名 Like 李*Like关键字用于模糊匹配,“*”代替任意多个字符;“?”代表任意一个字符。Select还有更多、更灵活的使用方式,可以满足几乎任何对表数据的查询要求,读者可参考其他相关资料。6.3.2 添加记录的添加记录的Insert语句语句 一般格式:Insert Into 表名(字段列表)Values(值列表)功能:向表中添加一条新记录。例例6-7 向订单表添加一条新记录。命令:Insert Into 订单表(订单编号,客户编号,产品编号,数量,单价,下订日期,送货日期)Value

    22、s(A2000,K1,C100,12,12.89,#2007-09-07#,#2007-12-30#)值列表的位置和个数型应与字段列表一一对应。文本字段类型和日期字段类型对应的常数值需要使用定界符。6.3.3 删除记录的删除记录的Delete语句语句 一般格式:Delete*From Where 条件 例例6-8 删除“订单表”中订单编号为 A2000的记录。命令:Delete*From 订单表 Where 订单编号=A2000 如果没有Where子句,则删除整个订单表数据。6.3.4 更新记录的更新记录的Update语句语句 一般格式:Update Set Where 条件 例例6-9 修改

    23、“订单表”,将订单编号为“A1000”的“数量”改为20。命令:Update订单表Set数量=20 Where订单编号=A1000 如果没有Where子句,则所有记录的“数量”字段值都将修改为20。6.4 数据库的初步操作数据库的初步操作 网页设计中,常常需要将数据库中的数据通过数据表格形式显示出来。ASP.NET提供了一组无须编写代码即可连接数据库、读出数据并将数据显示出来的数据控件。ASP.NET数据控件分为两大类:一类是实现数据库连接并读取指定数据表数据的数据源控件,这类控件没有数据显示功能;第二类是结合数据源控件显示数据的控件。图6-12是数据库、数据源控件和数据显示控件三者的关系示意

    24、图。数据源控件数据显示控件ASP.NET页面操作Access数据库:AccessDataSource操作SQL SERVER数据库:SqlDataSource 图6-12 使用数据控件在ASP.NET页面上显示数据库中的数据 在ASP.NET页面中显示数据的基本步骤:1.连接数据库,通过配置SQL查询语句选择数据库中某个表数据。该步骤可以用数据源控件实现。2.通过数据显示控件,将数据呈现出来。本节通过案例介绍有关数据库的操作。例例6-10 使用GridView表格视图控件,在页面上显示Access数据库db1.mdb中“成绩”表的数据,如图6-13所示。图6-13 用DridView显示“成绩

    25、”表数据 假设已创建Access数据库并保存为C:Db1.mdb,数据库Db1.mdb包含“成绩”表结构(见图6-14)以及初始录入的表数据(见图6-15)。图6-14 “成绩”表结构图6-15“成绩”表录入的数据要实现本例的功能,需要进行一系列的数据库操作。6.4.1 连接数据库,选取数据连接数据库,选取数据 要实现例6-10的功能,首先需要进行连接数据库,选取数据。相关知识与技能相关知识与技能 要在ASP.NET页面中将读取的数据显示出来,首先要与已创建的数据库建立连接。在ASP.NET中,可以用两种方式实现数据库操作,一种是使用数据源控件方式连接数据库、读取数据,然后用数据显示控件显示,

    26、这种方式使用简单,可以不需要编写任何代码,开发效率较高;一种是使用ADO.NET对象,通过编写代码实现同样的目的,这方式高度灵活,属于数据库高级操作的内容。ADO.NET对象的使用将在后续章节介绍,本节主要介绍如何使用数据源控件实现与Access数据库的连接和数据选取,对于SQL Server数据库操作,实现的思路类似。操作步骤操作步骤 1.添加数据库 新建 Web 窗体,保存为 EX6-1.aspx。在项目资源管理器中,右击App_Data文件夹,在快捷菜单中选择“添加现有项”,在弹出的对话框中选择C:Db1.mdb文件,将数据库添加到项目中,如图6-16和图6-17所示。图6-16 添加C

    27、:Db1.mdb数据库图6-17 添加数据库后 Access数据库通常保存在App_Data文件夹中。ASP.NET出于安全考虑,该文件夹的所有文件即使知道了文件路径,也无法在客户端通过输入网址下载,避免了非法用户通过输入网址方式下载整个数据库。2.使用数据源控件 添加数据库后,可以使用数据源控件连接数据库。将AccessDataSource 数据源控件 从“工具箱”的“数据”选项卡拖到Web窗体,初始界面如图6-18所示。图6-18 添加AccessDataSource 数据源控件初始界面 单击“配置数据源选”(见图6-18),依次按照图6-19图6-22完成连接ACCESS数据库和选取数据

    28、的操作。图6-19 配置数据源-准备选择数据库12图6-20 配置数据源-选择数据库图6-21 配置数据源-完成数据库选择3.自动生成SQL命令文本2.*号是选择所有字段4.配置查询条件1.选择其中一个要显示数据的表图6-21 配置数据源-配置SQL查询图6-22 配置数据源-测试SQL查询6.4.2 使用使用GridView显示数据显示数据 要实现例6-10的功能,需要显示数据库中的数据。相关知识与技能相关知识与技能 AccessDataSource 数据源控件只负责与数据库建立连接,并按向导配置的SQL查询选择数据,不负责数据的显示。若要显示数据,必须使用数据显示控件。不同的数据显示控件,

    29、使用不同数据视图显示形式。本节主要介绍使用GridView表格显示表格数据。GridView控件提供了显示数据库中指定数据表数据的功能。在显示数据之前,必须使用数据源控件建立与数据库的连接,然后配置SQL查询语句,实现对数据的查询。GridView控件与数据源控件建立连接,实现将查询结果显示出来。整个过程不需要编写代码。操作步骤操作步骤 将“工具箱”的“数据”选项卡中的GridView控件 双击或拖放在Web窗体。在图6-23出现的任务向导出现的“选择数据源”下拉列表中,选择刚才建立的“AccessDataSource1”数据源控件。GridView控件右上角的 为智能标记,单击即可显示/隐藏

    30、任务向导。图6-24所示为 已和数据源建立连接的GridView表格视图。按F5键运行,运行结果如图6-25所示。图6-23 添加和配置GridView其他配置项按成绩表结构,初始化控件显示图6-24 已和数据源建立连接的GridView表格视图图6-25 运行结果 知识拓展知识拓展 1.GridView分页功能 如果表格数据太多(如几百条、上千条记录),在客户端一次性下载和显示将造成浏览器页面显示的呆滞停顿。如果记录数超过20行,可以考虑分页显示。GridView控件通过设置分页属性,可以实现自动分页功能,而无需编写代码。以下是与数据分页显示相关的几个属性:AllowPaging属性:是否容

    31、许分页;如果要实现数据分页显示,必须先设置该属性为True;否则,其他分页相关属性也将无效。PageSize属性:每一页显示的记录数。设置AllowPaging属性后,PageSize属性才能起作用。该属性值默认为10。如果表中的记录数超过10,将出现下一页和上一页或页数的链接。PagerSettings属性:对数据页导航方式和样式的设置,包含许多子属性。其中,Mode 子属性为页导航样式属性,即设置分页后,当记录超过记录数时,出现在控件下方(可以设置在上方或上下方都显示)的页导航链接。Mode的选择可以有4种形式,如图6-26所示。Mode=Numeric的页导航链接样式图6-26 Page

    32、rSettings子属性的Mode的可选值 其他页导航链接样式如图6-27所示。Mode为NumericFirstLastMode为NextPreviousM o d e 为 NextPreviousFirstLast如果Mode为NextPrevious 或 NextPreviousFirstLast,可以通过设置PagerSettings以下4个属性,采用中文信息提供导航接文字。FirstPageText=第一页 LastPageText=最后一页 NextPageText=下一页 PreviousPageText=上一页图6-27 页导航链接样式及设置 如果Mode为NextPrevio

    33、us 或 NextPreviousFirstLast,还可以通过设置PagerSettings以下4个属性,显示图片导航链接。采用图片导航样式时,上面列出的文字链接属性将无效。FirstPageImageUrl=第一页的图片 NextPageImageUrl=下一页的图片 LastPageImageUrl=第一页的图片 PreviousPageImageUrl=第一页的图片 这里的图片必须先建立,并在解决方案资源管理中用快捷菜单或“网站”菜单中的“添加现有项”选项将图片添加到项目中,然后在GridView属性窗口中进行选择。2.GridView排序的实现 GridView控件默认按SQL查询结

    34、果排序。若设置AllowSorting属性为True,单击GridView表格控件的列名时,可以对显示的数据进行动态排序。这样,在ASP.NET程序运行后,单击每一列的列表题即可实现动态排序,如图6-28所示。图6-28 按“语文”列排序的结果 如果不想全部列都设置为排序,可以打开GridView的Columns集合属性,将不希望单机列名执行排序功能的列的排序属性SortExpression设置为空,如图6-29所示。选中不需要排序的列删除SortExpression属性值即可单击该按钮,打开“字段”对话框图6-29 取消”姓名”列排序功能 如果要单击某一列实现同时按多列排序,可在图6-29中

    35、设置排序表达式属性SortExpression,例如:如果单击姓名列实现按姓名排序;如果有同名按语文分数排序;可以设置姓名的排序表达式SortExpression的值为“姓名,语文”,即“姓名”为第一排序关键字,“语文”为第二排序关键字,依此类推,增加得排序字段以“,”号分隔,如图6-30所示。图6-30 设置“姓名,语文”为排序关键字排序的结果 3.GridView的编辑功能 GridView控件具有更新数据、删除数据的一般编辑功能,不具有添加新记录的功能。如果要添加记录,可以使用后面介绍的其它数据控件。GridView的编辑功能一般用于后台数据管理中,实现数据修改或删除功能;或者是客户定单

    36、的自我管理中。例如,客户订购了某件商品,可以在确认前修改订购数量或取消某一项商品的订购。要为GridView控件添加编辑功能,可以使用下列步骤设置相关属性,不需要编写代码。选中GridView控件,单击Columns属性右边的“”按钮,弹出“字段”对话框,如图6-31所示。在“可用字段”中找到并展开“CommandFiled”,将“CommandFiled”下面列出的“编辑、更新、取消”和“删除”栏,单击“添加”按钮添加到“选定的字段”中。图6-31 “字段”对话框 添加了“编辑”和“删除”功能的GridView控件如图6-32所示。图6-32 添加“编辑”和“删除”功能的GridView按F

    37、5健运行后,单击“编辑”链接按钮,将看到图6-33所示编辑界面。输入修改后的数据后,单击“更新”链接按钮,将把修改后的数据保存到数据库;单击“取消”链接按钮,则不修改当前记录内容图6-33 编辑界面图6-33 编辑界面 单击“更新”链接按钮,可能弹出错误提示,如图6-34所示。图6-34 更新时的错误提示 错误的原因:配置数据源控件AccessDataSource时,只配置了SELECT(选择数据)SQL命令,未相应配置UPDATE(更新)和DELETE(删除)的SQL命令。此时,可以再次对数据源控件AccessDataSource进行配置:在WEB窗体中选中AccessDataSource控

    38、件,单击控件右上角的智能标记,依次按图6-18图6-21的步骤操作。在图6-21中单击“高级”按钮,弹出“高级SQL生成选项”对话框,如图6-35所示。将该项打勾,然后确定图6-35 配置UPDATE和DELETE的SQL命令 按F5健运行,再次更新数据时不再出现错误提示。如果表中无关键字,将无法设置自动配置INSERT、UPDATE和DELET语句,即图6-35中的“高级SQL生成项”对话框无法操作。关键字字段不容许更新;如果希望某一列不容许更新,而该列又不是关键字字段,可以在“字段”对话框中选中该列,将其“ReadOnly”属性设置为True,同时,必须修改AccessDataSource

    39、控件的UpdateQuery属性,删除对该列的更新!在Web窗体中选中AccessDataSource控件,在属性窗口中可以看到配置的SQL的SELECT、UPDATE和DELETE文本,如图6-36所示。单击可以看到自动配置的SQL命令文本图6-36 AccessDataSource控件的属性 在“命令和参数编辑器”(见图6-37)中,可以通过“查询生成器”向导新建更新查询或修改当前更新查询;其中,问号?表示需要传递的参数,这里的参数值是GridView控件运行时编辑状态中对应的文本框输入的数据,GridView控件将实现智能关联。图6-37 “UPDATE属性”编辑向导 如果某一列不希望修

    40、改(即该列已设置为只读),在图6-37所示对话框中必须删除该字段和对应参数。例如,将“姓名”列设置为只读,则命令改为:UPDATE 成绩 SET 语文=?,数学=?,英语=?WHERE 学号=?否则,“姓名”字段在执行更新时将被更新为空 4.自定义GridView的外观 如果觉得原始GridView控件运行时外观过于平淡、简单,可以使用自定义外观样式属性对GridView控件进行设置,也可以通过“自动套用格式”功能自动套用ASP.NET内部提供的17种样式。使用自动套用格式 在Web窗体中选中GridView1控件,单击智能标记,选择“自动套用格式”选项,如图6-38所示。在弹出的“自动套用格

    41、式对话框”中选择样式,如图6-39所示。这里选择“传统”类型格式。按F5健运行后,可以看到自动套用格式的结果,如图3-40所示。图6-38 自动套用格式图6-39 格式选择图6-40 “传统”格式效果 自定义格式使用 GridView控件的样式主要用于设置前景色、背景色、字体样式以及颜色、单元格内对齐方式、边框样式等。GridView控件的各个区域如图6-41所示。4312567图6-41 GridView控件各个区域示意 Caption:表格标题,直接输入文本。代表HeaderStyle 样式区域:表格行头标题。EditRowStyle 样式区域:编辑状态时的行样式。AlternatingR

    42、owStyle 样式区域:交替出现的行样式。RowStyle 样式区域:正常状态下行的样式。FooterStyle 样式区域:表格底部行样式。PagerStyle 样式区域:页导航行样式。这些样式属性均包含子样式,其设置方法相似;了解了这些样式代表的含义后,将很容易定义自己需要的表格外观,读者可以自己上机试试。6.4.3 用主表用主表/明细表方式显示数据明细表方式显示数据 在数据库中有多个相关联标的场合,需要用主表/明细表方式显示数据。相关知识与技能相关知识与技能 主表/明细表方式显示数据一般用于两个或多个相关联表的场合。在主表中列出所有记录,选择其中某条记录时,在页面其它位置显示该条记录的其

    43、他相关信息。数据显示控件中的DetailsView(细节视图)控件,可以方便实现主表/明细表方式显示数据。图6-42是该方式的一个实例。DetailsView控件也可以设置分页显示数据和实现数据编辑功能,与GridView控件不同的是,DetailsView控件每页只显示一条记录,不但可以具有GridView控件的实现更新、删除的编辑功能,还可以实现新增记录功能,这是GirdView控件不具有的。因此DetailsView控件样式属性中,还多了InsertRowStyle属性设置插入状态的样式。图6-42 主表/明细表方式显示数据 操作步骤操作步骤 实现以“学生信息”表为主表,”成绩”表为明细

    44、表的页面数据显示,现时效果如图4-42所示。操作步骤如下:1.添加一个“学生信息”表,实现学生信息表和成绩表关联的关键字(主键)是“学号”,这是学生信息表的主键。一般在表设计时应该定义能唯一确定一条记录的主键。学生信息表结构如图6-43所示。图6-43 “学生信息”表结构 2.在ACCESS 2003应用程序工作环境中,通过工具栏的 按钮,将学生信息表和成绩表添加到关系视图,并且将学生信息表中的“学生”拖动到成绩表的“学号”中,建立两个表的关系。建立好的关系如图6-44所示。图6-44 “学生信息”与“成绩”表建立的关系 3.添加主表(学生信息表)显示 新建Web窗体,保存为Ex6-2.asp

    45、x。将数据源控件AccessDataSource添加到Web窗体,并建立与数据库Db1.mdb中“学生信息”表的连接和数据选取。添加GridView控件以显示数据。也可以采用更加快捷方法,自动产生AccessDataSource和GridView布局,如图6-45所示,如果在开发环境中看不到该界面,在菜单栏上选择“视图服务器资源管理”选项。直接拖动表名到Web窗体,将自动建立连接和数据显示控件 图6-45 自动建立AccessDataSource和GridView 完成主表添加的界面如图6-46所示。为了使表格行可以单击选中,通过智能标记设置“启动选定内容”选项和分页选项。图6-46 主表添加

    46、后WEB窗体布局 4.添加明细表显示 明细表的显示通过细节视图控件DetailsView实现。原理是取得主表中选定行的主关键字,并以主表主关键字作为选取数据的条件,选择数据显示。添加数据连接控件 每个数据源控件只连接并打开一个表,为了使细节视图控件显示另一个表数据,必须再添加一个数据源控件。这里添加的数据源控件ID默认为AccessDataSource2,连接数据库的操作步骤和8.4.1节相同;区别是在图6-47中必须添加WHERE条件。12图6-47 连接“成绩”表,按条件选择数据 单击“WEHERE”按钮,弹出“添加WHERE子句”对话框,配置SQL命令中的条件,按图6-49中的标识顺序操

    47、作即可。12345 图6-49 配置WHEERE条件表达式 选择字段,这里的条件是选择“学号”满足条件的数据,因而在“列”栏中选择“学号”。选择运算符是“=”号,含义是选择“成绩”表中“学号”字段等于指定参数的数据显示。指定条件表达式中“学号”列的参数值来源,由于选择的数据是参照主表中GridView选中的列的数据,这里选择“Control”。指定参数值来自哪个控件,这里是GridView。将选择内容自动产生条件表达式,并且在“WHERE子句(W)”位置下方面显示出来,如图6-40所示。图6-40 配置好的条件表达式 单击“添加”按钮和“确定”按钮后,执行“下一步”直到完成,从而完成明细表数据

    48、来源的配置。需要注意的是,GridView中的SelectedValue属性值是指其在DataKeyNames属性中指定的“学生信息”表中的关键字。如果表中有多个关键字,则为第一个关键字。这里是。因此,用主表/明细表方式显示数据时,表中必须设置关键字(也就是主键)。添加DetailsView控件 将“工具箱”中的DetailsView控件拖到Web窗体,设置其数据源为AccessDataSource2,如图6-41所示。图6-41 DetailsView控件使用 5.运行结果 将Ex6-2.aspx设置为起始页,按F5健运行,运行结果如图6-42所示。6.5 DataList 和和Repeat

    49、er控件的使用控件的使用 GridView和DetailsView控件只能按表格显示记录,DataList和Repeater控件都可以实现自定义布局方式显示数据,从而给数据的显示添加了更多的灵活性和多样化。本节着重讲解这两个控件的项目模板的使用以及两者使用的差别。6.5.1 自定义自定义DataList布局显示数据布局显示数据 例例6-11 在数据库db1.mdb中建立包含表6-5中字段的“图书信息”表。用DataList控件通过编辑项目模板ItemTemplate实现数据按自定义布局显示,如图4-42所示。图6-42 使用DataList自定义布局显示数据 表6-5 图书信息表结构字段名数据

    50、类型说明ID自动编号书名文本字段长度:100图片文本字段长度:50价格数字(单精度)两位小数作者文本默认长度出版社文本默认长度 相关知识与技能相关知识与技能 Web 服务器控件DataList可以用自定义格式显示数据库的行。显示数据所用的格式在项、交替项、选定项和编辑项模板中定义。标头、脚注和分隔符模板也用于自定义 DataList 的整体外观。在模板中包括Web 服务器控件Button,可将列表项连接到代码,使用户得以在显示、选择和编辑模式之间进行切换。Web 服务器控件DataList以某种格式显示数据,这种格式可以使用模板和样式进行定义。DataList 控件对于显示数据行很有用。可以选

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:ASP.NET程序设计 第6章.ppt
    链接地址:https://www.163wenku.com/p-7379370.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库