190
ASP .NET ASP .NET 程程程程程程程程C# C# 程程程程程程程程程程程 程程程程程程程程程程程 程程程程程程 程程程程程程 2007.7 2007.7

asp.net 网站建设ppt课件

  • Upload
    su-jin

  • View
    257

  • Download
    9

Embed Size (px)

DESCRIPTION

asp.net网站建设ppt课件

Citation preview

Page 1: asp.net 网站建设ppt课件

ASP .NET ASP .NET 程序设计(程序设计( C#C#版)版)机械工业出版社同名教材机械工业出版社同名教材配套电子教案配套电子教案

2007.72007.7

Page 2: asp.net 网站建设ppt课件

课 程 概 述课 程 概 述本书以本书以 Visual Studio 2005Visual Studio 2005 为开发平台,以为开发平台,以 C#C# 为为开发语言,面向毫无程序设计基础的读者,采用案开发语言,面向毫无程序设计基础的读者,采用案例方式,全面细致地介绍了例方式,全面细致地介绍了 ASP.NET 2.0ASP.NET 2.0 网站开发网站开发技术。技术。全书共分为全书共分为 1010 章,主要包括章,主要包括 ASP.NET 2.0ASP.NET 2.0 和和 VisuaVisual Studio 2005l Studio 2005 开发环境简介,开发环境简介, C# 2005C# 2005 编程基础,编程基础,结构化程序设计方法,常结构化程序设计方法,常 WebWeb 服务器控件,服务器控件, ASP.NEASP.NET 2.0T 2.0 内置对象,数据库应用程序开发,内置对象,数据库应用程序开发, Web ServWeb Serviceice 简介和发布简介和发布 ASP.NET 2.0ASP.NET 2.0 网站等方面的内容。网站等方面的内容。本书每章均配有一定数量的习题,以方便学生练习。本书每章均配有一定数量的习题,以方便学生练习。

Page 3: asp.net 网站建设ppt课件

学习要求与方法学习要求与方法要求:要求:1. 1. 理解结构化程序设计、可视化程序设计和面向理解结构化程序设计、可视化程序设计和面向对象的程序设计方法。对象的程序设计方法。2. 2. 理解理解 C# 2005C# 2005 的事件驱动机制。的事件驱动机制。3. 3. 通过本书的学习,能够独立设计出一般通过本书的学习,能够独立设计出一般 ASP.NET ASP.NET 2.02.0 应用程序。应用程序。

方法:方法:1. 1. 课前预习、课中认真听讲,紧跟教师思路。课前预习、课中认真听讲,紧跟教师思路。2. 2. 课后认真完成作业,安排足够的上机时间。课后认真完成作业,安排足够的上机时间。3. 3. 上机时应认真理解代码的含义,不要将上机变上机时应认真理解代码的含义,不要将上机变成“打字练习”。成“打字练习”。

Page 4: asp.net 网站建设ppt课件

第第 11 章 章 ASP.NET 2.0ASP.NET 2.0 概述概述本章讲述的主要内容本章讲述的主要内容1.1 1.1 程序设计方法的发展历程程序设计方法的发展历程

程序设计方法和程序设计语言的发展、程序设计方法和程序设计语言的发展、 C/SC/S 和和 B/SB/S 架构体架构体系、多层开发架构。系、多层开发架构。1.2 .NET1.2 .NET 框架简介框架简介1.3 ASP.NET1.3 ASP.NET 的体系结构的体系结构

ASP.NET 2.0ASP.NET 2.0 的逻辑架构、的逻辑架构、 ASP.NET 2.0ASP.NET 2.0 网站的组成文件网站的组成文件

Page 5: asp.net 网站建设ppt课件

1.1 1.1 程序设计方法的发展历程程序设计方法的发展历程1.1.1.1.11 程序设计方法的发展程序设计方法的发展

1. 1. 传统的编程方法传统的编程方法强调节省计算机资源,程序可读性差、可维护性差、通用性强调节省计算机资源,程序可读性差、可维护性差、通用性更差。更差。

2. 2. 结构化程序设计结构化程序设计要求把程序的结构规定为要求把程序的结构规定为顺序、选择和循环顺序、选择和循环三种基本结构。三种基本结构。限制使用语句间的跳转(限制使用语句间的跳转( gotogoto 语句),并提出了自顶向下、语句),并提出了自顶向下、逐步求精、模块化程序设计等设计原则。逐步求精、模块化程序设计等设计原则。

3. 3. 面向对象的程序设计方法面向对象的程序设计方法使软件的设计与实现形成一个由抽象到具体、由简单到复杂使软件的设计与实现形成一个由抽象到具体、由简单到复杂的循序渐进的过程,从而解决了大型软件研制中存在的效率的循序渐进的过程,从而解决了大型软件研制中存在的效率低、质量无法保证、调试复杂、维护困难等一系列问题。低、质量无法保证、调试复杂、维护困难等一系列问题。

Page 6: asp.net 网站建设ppt课件

1.1 1.1 程序设计方法的发展历程程序设计方法的发展历程1.1.2 1.1.2 程序设计语言的发展程序设计语言的发展机器语言 → 汇编语言 → 高级语言 →机器语言 → 汇编语言 → 高级语言 →

可视化程序设计 → 面向对象的程序设计可视化程序设计 → 面向对象的程序设计 在计算机网络及其应用迅速发展的今天,美国在计算机网络及其应用迅速发展的今天,美国 MicrosoftMicrosoft 公司公司为适应潮流推出了以为适应潮流推出了以 .NET.NET 为核心的为核心的 Visual Studio .NETVisual Studio .NET 系列产系列产品(品( Visual Studio 2003Visual Studio 2003 和和 Visual Studio 2005Visual Studio 2005 )。)。 ASP.NETASP.NET就是其中重要的一个组成部分。它包含了几乎所有先进的编程技就是其中重要的一个组成部分。它包含了几乎所有先进的编程技术,而且相对简单易学。可以说它为用户提供了术,而且相对简单易学。可以说它为用户提供了 Microsoft .NEMicrosoft .NETT 的简单切入点。的简单切入点。 目前在目前在 WindowsWindows 环境中常用的面向对象程序设计语言有:环境中常用的面向对象程序设计语言有: VisuVisual Studio 2003/2005al Studio 2003/2005 中包含的中包含的 C#C# 、、 Visual Basic .NETVisual Basic .NET 等,以等,以及及 JavaJava 、、 PowerBuilderPowerBuilder 、、 DelphiDelphi 等。虽然它们的风格各异,等。虽然它们的风格各异,语法结构有很大的不同,但都具有相同的思维方式和编程模式。语法结构有很大的不同,但都具有相同的思维方式和编程模式。

Page 7: asp.net 网站建设ppt课件

1.1 1.1 程序设计方法的发展历程程序设计方法的发展历程1.1.3 C/S 1.1.3 C/S 和 和 B/S B/S 架构架构1. C/S1. C/S 架构体系架构体系 在在 20002000 年以前年以前 C/SC/S 架构占据架构占据着开发领域的主流地位,其结构如着开发领域的主流地位,其结构如图图 1-11-1 所示。通常程序员将开发完所示。通常程序员将开发完成的软件安装在某计算机(客户成的软件安装在某计算机(客户机)中,将数据库安装在专用的服机)中,将数据库安装在专用的服务器(数据库服务器)中,用户通务器(数据库服务器)中,用户通过安装在客户机中的软件和网络进过安装在客户机中的软件和网络进行各种数据库操作。这种架构要求行各种数据库操作。这种架构要求客户机中必须安装客户端程序,否客户机中必须安装客户端程序,否则无法工作。再有,在则无法工作。再有,在 C/SC/S 架构中架构中主要的数据分析处理工作需要在客主要的数据分析处理工作需要在客户机中完成,这就要求客户机有较户机中完成,这就要求客户机有较高的硬件配置。常用的聊天工具如高的硬件配置。常用的聊天工具如QQQQ 、、 MSNMSN 及一些网络游戏都属于及一些网络游戏都属于 CC/S/S 架构的应用程序。架构的应用程序。

Page 8: asp.net 网站建设ppt课件

1.1 1.1 程序设计方法的发展历程程序设计方法的发展历程1.1.3 C/S 1.1.3 C/S 和 和 B/S B/S 架构架构2. B/S2. B/S 架构体系架构体系 B/SB/S 架构体系如图架构体系如图 1-21-2 所示,所示,由客户机、应用服务器和数据库服由客户机、应用服务器和数据库服务器三部分组成,在中小型应用系务器三部分组成,在中小型应用系统中,统中, WebWeb 服务器可以与数据库服服务器可以与数据库服务器安装在同一台服务器中。与务器安装在同一台服务器中。与 C/C/SS 架构相比,它不需要在客户机上架构相比,它不需要在客户机上安装专门的客户端软件,用户在使安装专门的客户端软件,用户在使用程序时仅需要通过安装在客户机用程序时仅需要通过安装在客户机上的浏览器访问指定的上的浏览器访问指定的 WebWeb 服务器服务器即可。在即可。在 B/SB/S 架构中主要的数据分架构中主要的数据分析处理工作是在应用服务器中完成析处理工作是在应用服务器中完成的,客户端主要用来下达指令和接的,客户端主要用来下达指令和接收结果,所以客户机的配置要求不收结果,所以客户机的配置要求不高,高, B/SB/S 架构非常适合“瘦客户架构非常适合“瘦客户端”的运行环境。端”的运行环境。

Page 9: asp.net 网站建设ppt课件

1.1 1.1 程序设计方法的发展历程程序设计方法的发展历程1.1.3 C/S 1.1.3 C/S 和 和 B/S B/S 架构架构 3. B/S3. B/S 架构编程语言架构编程语言 (1) ASP(1) ASP (2) ASP.NET(2) ASP.NET (3) JSP(3) JSP (4) PHP(4) PHP

Page 10: asp.net 网站建设ppt课件

1.1 1.1 程序设计方法的发展历程程序设计方法的发展历程1.1.4 1.1.4 多层开发架构多层开发架构 11. . 两层架构两层架构

Page 11: asp.net 网站建设ppt课件

1.1 1.1 程序设计方法的发展历程程序设计方法的发展历程1.1.4 1.1.4 多层开发架构多层开发架构 22. . 三层架构三层架构

Page 12: asp.net 网站建设ppt课件

1.1 1.1 程序设计方法的发展历程程序设计方法的发展历程1.1.4 1.1.4 多层开发架构多层开发架构 33. N. N 层架构层架构

Page 13: asp.net 网站建设ppt课件

1.2 1.2 .NET.NET 框架简介框架简介.NET.NET 的核心是的核心是 .NET.NET 框架(框架( .NET Framework.NET Framework )它是构建于以计算)它是构建于以计算机网络的基础上的开发工具。机网络的基础上的开发工具。 .NET.NET 框架的基本结构如下图所示。框架的基本结构如下图所示。

Page 14: asp.net 网站建设ppt课件

1.3 1.3 ASP.NET 2.0ASP.NET 2.0 的体系结构的体系结构1.3.1 ASP.NET 2.01.3.1 ASP.NET 2.0 的逻辑架构的逻辑架构

Page 15: asp.net 网站建设ppt课件

1.3 1.3 ASP.NET 2.0ASP.NET 2.0 的体系结构的体系结构1.3.2 ASP.NET 2.01.3.2 ASP.NET 2.0网站的组成文件网站的组成文件

一个使用一个使用 Visual Studio 2005Visual Studio 2005 开发出来的开发出来的 ASP.NET 2.0ASP.NET 2.0网站,通常包含以下一些内容:网站,通常包含以下一些内容:1) 1) 包含一个或多个扩展名为包含一个或多个扩展名为 .aspx.aspx 的网页文件,网站中也允的网页文件,网站中也允许包含许包含 .htm.htm或或 .asp.asp 文件。文件。2) 2) 包含一个或多个包含一个或多个 Web.configWeb.config 配置文件。配置文件。3) 3) 包含一个以包含一个以 Global.asaxGlobal.asax 命名的全局文件(可选)。命名的全局文件(可选)。4) 4) 包含包含 App_CodeApp_Code和和 App_DataApp_Data 两个共享目录。两个共享目录。

Page 16: asp.net 网站建设ppt课件

第第 33 章 章 C# 2005C# 2005程序设计基础程序设计基础

本章讲述的主要内容本章讲述的主要内容3.1 C#3.1 C# 程序的代码结构程序的代码结构3.2 3.2 数据类型数据类型3.3 3.3 变量和常量变量和常量3.4 3.4 运算符和表达式运算符和表达式3.5 C# 20053.5 C# 2005 的常用方法与属性的常用方法与属性

Page 17: asp.net 网站建设ppt课件

3.1 3.1 C#C# 程序的代码结构程序的代码结构3.1.1 C#3.1.1 C#代码的组成要素及书写规则代码的组成要素及书写规则

1. 1. 关键字关键字 关键字也叫保留字,是对关键字也叫保留字,是对 C#C# 有特定意义的字符串。关键字有特定意义的字符串。关键字在在 VS 2005 IDEVS 2005 IDE 环境的代码窗口中默认以蓝色显示。例如,上例环境的代码窗口中默认以蓝色显示。例如,上例中的中的 usingusing 、、 publicpublic 、、 protectedprotected 、、 classclass 、、 voidvoid 、、 thisthis 等,等,均为均为 C#C# 的关键字。的关键字。 2. 2. 命名空间命名空间在面向对象程序设计中,无论使用什么开发语言都离不开开发环在面向对象程序设计中,无论使用什么开发语言都离不开开发环境中的类和对象,这些类和对象就是各种语法提供给用户的“资境中的类和对象,这些类和对象就是各种语法提供给用户的“资源”,在源”,在 .NET.NET 中将这些资源的分类集合称为“命名空间”(中将这些资源的分类集合称为“命名空间”( namnamespaceespace )。使用命名空间可以把类组织成一个逻辑上相关联的)。使用命名空间可以把类组织成一个逻辑上相关联的层次结构。它既可以对内部组织应用程序,也可以对外避免命名层次结构。它既可以对内部组织应用程序,也可以对外避免命名冲突。 冲突。

Page 18: asp.net 网站建设ppt课件

3.1 3.1 C#C# 程序的代码结构程序的代码结构3.1.1 C#3.1.1 C#代码的组成要素及书写规则代码的组成要素及书写规则

3. 3. 语句语句 语句就是语句就是 C#C# 应用程序中执行操作的指令。应用程序中执行操作的指令。 C#C# 中的语句必须中的语句必须用分号“用分号“ ;”;” 结束。可以在一行中书写多条语句,也可以将一条结束。可以在一行中书写多条语句,也可以将一条语句书写在多行上。语句书写在多行上。 4. 4. 大括号大括号 在在 C#C# 中,括号“中,括号“ {”{” 和“和“ }”}” 是一种范围标志,是组织代是一种范围标志,是组织代码的一种方式,用于标识应用程序中逻辑上有紧密联系的一段代码的一种方式,用于标识应用程序中逻辑上有紧密联系的一段代码的开始与结束。大括号是可以嵌套的,以表示应用程序中的不码的开始与结束。大括号是可以嵌套的,以表示应用程序中的不同层次。在书写代码时应注意使用缩进格式,将代码中的层次关同层次。在书写代码时应注意使用缩进格式,将代码中的层次关系充分表现出来。系充分表现出来。

Page 19: asp.net 网站建设ppt课件

3.1 3.1 C#C# 程序的代码结构程序的代码结构3.1.2 C#3.1.2 C#程序的格式程序的格式

1. 1. 缩进与空格缩进与空格 缩进用于表示代码的结构层次,这在程序中不是必须的,缩进用于表示代码的结构层次,这在程序中不是必须的,但是缩进可以清晰地表示程序的结构层次,在程序设计中应该使但是缩进可以清晰地表示程序的结构层次,在程序设计中应该使用统一的缩进格式书写代码。用统一的缩进格式书写代码。 2. 2. 字母大小写字母大小写 C#C# 中的字母可以大小写混合,但是必须注意的是,中的字母可以大小写混合,但是必须注意的是, C#C# 把同把同一字母的大小写当作两个不同的字符对待(区分大小写),如,一字母的大小写当作两个不同的字符对待(区分大小写),如,大写“大写“ A”A” 与小写“与小写“ a”a” 对对 C#C# 来说,是两个不同的字符。来说,是两个不同的字符。 3. 3. 注释注释 代码中的注释起对代码的解释说明作用,在将程序进行编代码中的注释起对代码的解释说明作用,在将程序进行编译时,系统会跳过程序的注释部分,所以注释不是必须的。译时,系统会跳过程序的注释部分,所以注释不是必须的。

Page 20: asp.net 网站建设ppt课件

3.3.22 数据类型数据类型3.3.22..11 数值类型数值类型 1. 1. 整数类型整数类型 整数类型又分为有符号整数与无符号整数。有符号整数可整数类型又分为有符号整数与无符号整数。有符号整数可以带正负号,无符号整数不需带正负号,默认为正数。以带正负号,无符号整数不需带正负号,默认为正数。 2. 2. 实数类型实数类型 实数类型包括实数类型包括 floatfloat (单精度浮点型)、(单精度浮点型)、 doubledouble (双精度(双精度浮点型)、浮点型)、 decimaldecimal (十进制型)。(十进制型)。

Page 21: asp.net 网站建设ppt课件

3.3.22 数据类型数据类型3.3.22..22 字符类型字符类型 1. Unicode1. Unicode 字符集字符集 UnicodeUnicode 是一种重要的通用字符编码标准,它覆盖了美国、是一种重要的通用字符编码标准,它覆盖了美国、欧洲、中东、非洲和亚洲的语言,以及古文和专业符号。欧洲、中东、非洲和亚洲的语言,以及古文和专业符号。 UnicoUnicodede 允许交换、处理和显示多语言文本以及公用的专业和数学符允许交换、处理和显示多语言文本以及公用的专业和数学符号。号。 2. char2. char (字符型)(字符型) charchar (字符型):数据范围是(字符型):数据范围是 00 ~~ 6553565535 之间的之间的 UnicodeUnicode 字字符集中的单个字符,占用符集中的单个字符,占用 22 个字节。个字节。 3. string3. string (字符串型)(字符串型) stringstring (字符串型):指任意长度的(字符串型):指任意长度的 UnicodeUnicode 字符序列,占字符序列,占用字节根据字符多少而定。 用字节根据字符多少而定。

Page 22: asp.net 网站建设ppt课件

3.3.22 数据类型数据类型3.2.3 3.2.3 布尔类型和对象类型布尔类型和对象类型 boolbool (布尔型):表示布尔逻辑型数据,占用(布尔型):表示布尔逻辑型数据,占用 44 个字节的存个字节的存储空间。储空间。 boolbool 型数据只能是“型数据只能是“ true”true” (真)或“(真)或“ false”false”(假)。(假)。 boolbool 型数值型数值 truetrue 和和 falsefalse 是是 C# 2005C# 2005 的关键字,不能的关键字,不能用来定义其他对象的名称。用来定义其他对象的名称。 boolbool 型数据为程序进行复杂的判断提供了数据类型依据,型数据为程序进行复杂的判断提供了数据类型依据,另外在程序进行关系运算或逻辑运算时,也将产生另外在程序进行关系运算或逻辑运算时,也将产生 boolbool 型数据型数据结果,所以结果,所以 boolbool 类型数据也常被称为逻辑型数据。类型数据也常被称为逻辑型数据。 objectobject (对象型)是所有其他类型的最终基类,其占用字(对象型)是所有其他类型的最终基类,其占用字节视具体表示的数据类型而定。节视具体表示的数据类型而定。 C# 2005C# 2005 中的每种类型都是直接中的每种类型都是直接或间接从或间接从 objectobject 类型派生的,类型派生的, objectobject 表示一个通用类型,一个表示一个通用类型,一个objectobject 类型的变量可以存放任何类型的值。类型的变量可以存放任何类型的值。 objectobject 也是也是 C# 200C# 20055 的默认数据类型。的默认数据类型。

Page 23: asp.net 网站建设ppt课件

3.3 3.3 变量与常量变量与常量

3.3.1 3.3.1 变量及其作用域变量及其作用域 1. 1. 变量命名规则变量命名规则 在在 C# 2005C# 2005 中,变量命名规则如下:中,变量命名规则如下: 1) 1) 变量名的第首字符必须是字母、汉字或下划线。变量名的第首字符必须是字母、汉字或下划线。 2) 2) 变量名中不能包含空格、小数点以及各种符号。变量名中不能包含空格、小数点以及各种符号。 3) 3) 组成变量名的字符数不要太长,应控制在组成变量名的字符数不要太长,应控制在 33 ~~ 3030 个字符。个字符。 4) 4) 变量名不能是关键字。如:变量名不能是关键字。如: intint ,, objectobject 等不能用作变等不能用作变量名。量名。 5) 5) 变量名在同一范围内必须是唯一的。变量名在同一范围内必须是唯一的。

Page 24: asp.net 网站建设ppt课件

3.3 3.3 变量与常量变量与常量3.3.1 3.3.1 变量及其作用域变量及其作用域 2.2. 为变量命名时的注意事项为变量命名时的注意事项 在为变量命名时注意以下几点:在为变量命名时注意以下几点: 1) 1) 变量名应该能够标识事物的特性,如用于存放姓名的字变量名应该能够标识事物的特性,如用于存放姓名的字符串变量可使用符串变量可使用 strNamestrName 命名。命名。 2) 2) 变量名应使用英文单词,而不能为汉语拼音。变量名应使用英文单词,而不能为汉语拼音。 3) 3) 变量名尽量不使用缩写,除非它是众所周知的。变量名尽量不使用缩写,除非它是众所周知的。 4) 4) 若在变量名中使用了多个单词,则应大写每个单词的第若在变量名中使用了多个单词,则应大写每个单词的第一个字母,其它字母小写。例如:一个字母,其它字母小写。例如: IsSuperUserIsSuperUser 。。 5) 5) 变量名应使用说明数据类型的前缀缩写,如变量名应使用说明数据类型的前缀缩写,如 strstr 、、 ii 等。等。 6) 6) 变量名中的单词尽量使用名词。如有动词要尽量放在后变量名中的单词尽量使用名词。如有动词要尽量放在后面。面。

Page 25: asp.net 网站建设ppt课件

3.3 3.3 变量与常量变量与常量3.3.1 3.3.1 变量及其作用域变量及其作用域 2.2. 为变量命名时的注意事项为变量命名时的注意事项 变量有两种典型的命名方法:骆驼表示法和匈牙利表示法。变量有两种典型的命名方法:骆驼表示法和匈牙利表示法。骆驼表示法以小写字母开头,以后的单词都以大写字母开头,如骆驼表示法以小写字母开头,以后的单词都以大写字母开头,如myBookmyBook 、、 theBoytheBoy、、 numOfStudentnumOfStudent 等。等。 推荐使用的匈牙利表示法,要求在每个变量名的前面加上推荐使用的匈牙利表示法,要求在每个变量名的前面加上一个表示数据类型的字符串前缀,所有单词的首字母均使用大写,一个表示数据类型的字符串前缀,所有单词的首字母均使用大写,其余部分使用小写。如其余部分使用小写。如 strNamestrName 、、 iMyCariMyCar 等。其中类型前缀等。其中类型前缀 strstr表示表示 stringstring 型,型, ii 表示表示 intint 型。型。

Page 26: asp.net 网站建设ppt课件

3.3 3.3 变量与常量变量与常量3.3.1 3.3.1 变量及其作用域变量及其作用域 3. 3. 声明变量声明变量 变量总是和变量名联系在一起的,所以要使用变量,必须变量总是和变量名联系在一起的,所以要使用变量,必须为变量命名。在为变量命名。在 C# 2005C# 2005 中,命名变量的过程称为“声明”。中,命名变量的过程称为“声明”。 声明变量就是把存放数据的类型告诉程序,以便为变量安声明变量就是把存放数据的类型告诉程序,以便为变量安排内存空间。变量的数据类型可以对应所有基本数据类型。声明排内存空间。变量的数据类型可以对应所有基本数据类型。声明变量最简单的格式为:变量最简单的格式为: 数据类型名称 变量名列表数据类型名称 变量名列表 ;; 例如:例如: float fResult; //float fResult; //声明一个单精度浮点型变量声明一个单精度浮点型变量 bool bOpen;bool bOpen; // //声明一个布尔型变量声明一个布尔型变量 decimal decSalary;decimal decSalary; ////声明一个十进制变量声明一个十进制变量

Page 27: asp.net 网站建设ppt课件

3.3 3.3 变量与常量变量与常量3.3.1 3.3.1 变量及其作用域变量及其作用域 4. 4. 变量赋值变量赋值 int iNumber; iNnumber = 32;int iNumber; iNnumber = 32; bool bOpen; bOpen=true;bool bOpen; bOpen=true; char chrLetter; chrLetter = 'w';char chrLetter; chrLetter = 'w'; string strName; strName = "Liu san jie";string strName; strName = "Liu san jie"; bool bOpen , bClose;bool bOpen , bClose; bOpen = true; bClose = bOpen;bOpen = true; bClose = bOpen; int iNum1 , iNum2 , iNum3;int iNum1 , iNum2 , iNum3; iNum1 = iNum2 = iNum3 = 32;iNum1 = iNum2 = iNum3 = 32; double dArea , dRadius = 16;double dArea , dRadius = 16;

Page 28: asp.net 网站建设ppt课件

3.3 3.3 变量与常量变量与常量3.3.2 3.3.2 常量常量 1. 1. 直接常量直接常量 直接常量即数据值本身。直接常量即数据值本身。 (1) (1) 整型常量整型常量 (2) (2) 实型常量实型常量 (3) (3) 字符常量字符常量 (4) (4) 字符串常量字符串常量 (5) (5) 布尔常量布尔常量 (6)(6)日期时间常量日期时间常量

Page 29: asp.net 网站建设ppt课件

3.3 3.3 变量与常量变量与常量3.3.2 3.3.2 常量常量 2. 2. 符号常量符号常量

符号常量使用符号常量使用 constconst关键字定义,格式为:关键字定义,格式为:

const const 类型名称 常量名 类型名称 常量名 = = 常量表达式常量表达式 ;; “ ”常量定义中, 常量表达式 的意义在于该表达式不能包含“ ”常量定义中, 常量表达式 的意义在于该表达式不能包含变量及函数等值会发生变化的内容。变量及函数等值会发生变化的内容。

const int MAX=10;const int MAX=10;

const double PI=3.1415926;const double PI=3.1415926;

const double AREA=PI*MAX*MAX;const double AREA=PI*MAX*MAX; ////合法合法 int iNum=10;int iNum=10;

const double AREA=PI*iNum*iNum;const double AREA=PI*iNum*iNum; ////不合法不合法

Page 30: asp.net 网站建设ppt课件

3.3 3.3 变量与常量变量与常量3.3.3 3.3.3 类型转换类型转换 1. 1. 隐式转换隐式转换 隐式转换是系统自动执行的数据类型转换。隐式转换的基隐式转换是系统自动执行的数据类型转换。隐式转换的基本原则是允许数值范围小的类型向数值范围大的类型转换,允许本原则是允许数值范围小的类型向数值范围大的类型转换,允许无符号整数类型向有符号整数类型转换。无符号整数类型向有符号整数类型转换。 2. 2. 显式转换显式转换 显式转换也称为强制转换,是在代码中明确指示将某一类显式转换也称为强制转换,是在代码中明确指示将某一类型的数据转换为另一种类型。显式转换语句的一般格式为:型的数据转换为另一种类型。显式转换语句的一般格式为: (( 数据类型名称数据类型名称 )) 数据数据 例如:例如: int x = 600;int x = 600; short z=(short)x;short z=(short)x;

Page 31: asp.net 网站建设ppt课件

3.3 3.3 变量与常量变量与常量3.3.3 3.3.3 类型转换类型转换 3. 3. 使用方法进行数据类型的转换使用方法进行数据类型的转换 (1) Parse(1) Parse 方法方法 数值类型名称数值类型名称 .Parse(.Parse( 字符串型表达式字符串型表达式 )) (2) ToString(2) ToString 方法方法 变量名称变量名称 .ToString().ToString()

Page 32: asp.net 网站建设ppt课件

3.3.44 运算符与表达式运算符与表达式3.4.1 3.4.1 运算符与表达式类型运算符与表达式类型 1. 1. 算术运算符与算术表达式算术运算符与算术表达式 算术运算符有一元运算符与二元运算符。算术运算符有一元运算符与二元运算符。 一元运算符:一元运算符: -- (取负)、(取负)、 ++(取正)、(取正)、 ++++(增量)、(增量)、 ----(减量)。(减量)。 二元运算符:二元运算符: ++(加)、(加)、 -- (减)、(减)、 ** (乘)、(乘)、 // (除)、(除)、%%(求余)。(求余)。

Page 33: asp.net 网站建设ppt课件

3.3.44 运算符与表达式运算符与表达式3.4.1 3.4.1 运算符与表达式类型运算符与表达式类型 2. 2. 字符串运算符与字符串表达式字符串运算符与字符串表达式 字符串表达式由字符串常量、字符串变量、字符串函数和字符串表达式由字符串常量、字符串变量、字符串函数和字符串运算符组成。字符串运算符组成。 C# 2005C# 2005 提供的字符串运算符只有一个提供的字符串运算符只有一个““ +”+” ,它用于连接两个或更多的字符串。字符串表达式的格式,它用于连接两个或更多的字符串。字符串表达式的格式为:为: 〈字符串〈字符串 11 〉〉 & | +& | + 〈字符串〈字符串 22 〉〉 [ & | +[ & | + 〈字符串〈字符串 33 〉…〉… ]]

Page 34: asp.net 网站建设ppt课件

3.3.44 运算符与表达式运算符与表达式3.4.1 3.4.1 运算符与表达式类型运算符与表达式类型 3. 3. 关系运算符与关系表达式关系运算符与关系表达式 (1) (1) 关系运算符关系运算符

Page 35: asp.net 网站建设ppt课件

3.3.44 运算符与表达式运算符与表达式3.4.1 3.4.1 运算符与表达式类型运算符与表达式类型 (2) (2) 关系表达式关系表达式 关系表达式由操作数和关系运算符组成。关系表达式中既关系表达式由操作数和关系运算符组成。关系表达式中既可以包含数值,也可以用于字符或字符串,但是用于字符串的关可以包含数值,也可以用于字符或字符串,但是用于字符串的关系运算符只有相等“系运算符只有相等“ ==”==” 和不等“和不等“ !=”!=” 两种运算符。两种运算符。

Page 36: asp.net 网站建设ppt课件

3.3.44 运算符与表达式运算符与表达式3.4.1 3.4.1 运算符与表达式类型运算符与表达式类型 4. 4. 逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式 逻辑表达式由关系运算符、逻辑运算符连接常量或关系表逻辑表达式由关系运算符、逻辑运算符连接常量或关系表达式组成,其取值为布尔值(达式组成,其取值为布尔值( TrueTrue 或或 FalseFalse )。通过条件表达)。通过条件表达式可对应用程序计算结果或用户输入值进行判断,并根据判断结式可对应用程序计算结果或用户输入值进行判断,并根据判断结果选取执行不同的代码段。果选取执行不同的代码段。 逻辑运算符的操作数是布尔类型,运算结果也是布尔类型。逻辑运算符的操作数是布尔类型,运算结果也是布尔类型。在在 C# 2005C# 2005 中,最常用的逻辑运算符是中,最常用的逻辑运算符是 !!(非)、(非)、 &&&&(与)、(与)、 ||||(或)。(或)。

Page 37: asp.net 网站建设ppt课件

3.3.44 运算符与表达式运算符与表达式3.4.1 3.4.1 运算符与表达式类型运算符与表达式类型 5. 5. 赋值运算符与赋值表达式赋值运算符与赋值表达式 在赋值表达式中,赋值运算符左边的操作数叫左操作数,在赋值表达式中,赋值运算符左边的操作数叫左操作数,赋值运算符右边的操作数叫右操作数。其中左操作数必须是一个赋值运算符右边的操作数叫右操作数。其中左操作数必须是一个变量或属性,而不能是一个常量。变量或属性,而不能是一个常量。 前面介绍过的赋值运算符“前面介绍过的赋值运算符“ =”=” 称为“简单赋值运算符”,称为“简单赋值运算符”,它与其他算术运算符结合在一起可组成“复合赋值运算符”,如它与其他算术运算符结合在一起可组成“复合赋值运算符”,如““ *=”*=” 、“、“ /=”/=” 、“、“ %=”%=” 、“、“ +=”+=” 、“、“ -=”-=” 等。等。

Page 38: asp.net 网站建设ppt课件

3.3.44 运算符与表达式运算符与表达式3.4.1 3.4.1 运算符与表达式类型运算符与表达式类型 6. 6. 条件赋值运算符及表达式条件赋值运算符及表达式 条件赋值表达式可以看作是逻辑表达式和赋值表达式的组条件赋值表达式可以看作是逻辑表达式和赋值表达式的组合,它可根据逻辑表达式的值(合,它可根据逻辑表达式的值( truetrue 或或 falsefalse )返回不同的结)返回不同的结果。条件运算符由符号“果。条件运算符由符号“ ?”?” 与“与“ :”:” 组成,通过操作三个操作组成,通过操作三个操作数完成运算,其一般格式为:数完成运算,其一般格式为: 逻辑表达式 逻辑表达式 ? ? 表达式表达式 1 : 1 : 表达式表达式 22 在条件赋值表达式在运算时,首先运算“逻辑表达式”的在条件赋值表达式在运算时,首先运算“逻辑表达式”的值,如果为值,如果为 truetrue ,则运算结果为“表达式,则运算结果为“表达式 1”1” 的值,否则运算的值,否则运算结果为“表达式结果为“表达式 2”2” 的值。的值。

Page 39: asp.net 网站建设ppt课件

3.3.44 运算符与表达式运算符与表达式3.4.2 3.4.2 运算符的优先级与结合性运算符的优先级与结合性 1. 1. 优先级优先级

Page 40: asp.net 网站建设ppt课件

3.3.44 运算符与表达式运算符与表达式3.4.2 3.4.2 运算符的优先级与结合性运算符的优先级与结合性 2. 2. 圆括号圆括号 为了使表达式按正确的顺序进行运算,避免实际运算顺序为了使表达式按正确的顺序进行运算,避免实际运算顺序不符合设计要求,同时为了提高表达式的可读性,可以使用圆括不符合设计要求,同时为了提高表达式的可读性,可以使用圆括号明确运算顺序。号明确运算顺序。 使用括号还可以改变表达式的运算顺序。例如,使用括号还可以改变表达式的运算顺序。例如, b*c+db*c+d 的运的运算顺序是先进行“算顺序是先进行“ b*c”b*c” 的运算,然后再加“的运算,然后再加“ d”d” ,如果表达式,如果表达式加上括号,变为加上括号,变为 b*(c+d)b*(c+d) ,则运算时会先进行括号内的运算,然,则运算时会先进行括号内的运算,然后将结果乘“后将结果乘“ b”b” 。。

Page 41: asp.net 网站建设ppt课件

3.3.44 运算符与表达式运算符与表达式3.4.2 3.4.2 运算符的优先级与结合性运算符的优先级与结合性 3. 3. 结合性结合性 在多个同级运算符中,赋值运算符与条件运算符是由右向在多个同级运算符中,赋值运算符与条件运算符是由右向左结合的,除赋值运算符以外的二元运算符是由左向右结合的。左结合的,除赋值运算符以外的二元运算符是由左向右结合的。例如,例如, x + y + zx + y + z是按是按 (x + y) + z(x + y) + z的顺序运算的,而的顺序运算的,而 x = y= zx = y= z是按是按 x = (y = z)x = (y = z) 的顺序运算(赋值)的。的顺序运算(赋值)的。

Page 42: asp.net 网站建设ppt课件

3.5 C# 20053.5 C# 2005的常用方法与属性的常用方法与属性3.5.1 3.5.1 日期时间类常用方法与属性日期时间类常用方法与属性 C# 2005C# 2005 中的中的 DateTimeDateTime 类提供了一些常用的日期时间方法与类提供了一些常用的日期时间方法与属性,该类属于属性,该类属于 SystemSystem 命名空间,在使用模板创建应用程序时,命名空间,在使用模板创建应用程序时,该命名空间的引用已自动生成,因此可以直接使用该命名空间的引用已自动生成,因此可以直接使用 DateTimeDateTime 类。类。对于以当前日期时间为参照的操作,可以使用该类的对于以当前日期时间为参照的操作,可以使用该类的 NowNow 属性及属性及其方法。其方法。 日期时间类的日期时间类的 NowNow 属性的常用方法格式为:属性的常用方法格式为: DateTime.Now.DateTime.Now. 方法名称方法名称 ((参数列表参数列表 )) 日期时间类的日期时间类的 NowNow 属性的常用属性格式为:属性的常用属性格式为: DateTime.Now.DateTime.Now. 属性名称属性名称

Page 43: asp.net 网站建设ppt课件

3.5 C# 20053.5 C# 2005的常用方法与属性的常用方法与属性3.5.2 3.5.2 常用数学方法与字段常用数学方法与字段

Page 44: asp.net 网站建设ppt课件

3.5 C# 20053.5 C# 2005的常用方法与属性的常用方法与属性3.5.3 3.5.3 字符串的方法与属性字符串的方法与属性

Page 45: asp.net 网站建设ppt课件

3.5 C# 20053.5 C# 2005的常用方法与属性的常用方法与属性3.5.5 3.5.5 随机方法随机方法 RandomRandom 类提供了产生伪随机数的方法。产生随机数的方法类提供了产生伪随机数的方法。产生随机数的方法必须由必须由 RandomRandom 类创建的对象调用。类创建的对象调用。 RandomRandom 类创建对象的格式为:类创建对象的格式为: Random Random 随机对象名称随机对象名称 =new Random();=new Random(); 如果要声明一个随机对象如果要声明一个随机对象 rnrn ,则代码为:,则代码为: Random rn = new Random();Random rn = new Random(); 现假定已经声明了一个随机对象现假定已经声明了一个随机对象 rnrn ,则随机方法的使用见,则随机方法的使用见表表 3-173-17 。。

Page 46: asp.net 网站建设ppt课件

第第 44 章 结构化程序设计方法章 结构化程序设计方法本章讲述的主要内容本章讲述的主要内容4.1 4.1 基本控件和顺序结构程序设计方法基本控件和顺序结构程序设计方法4.2 4.2 选择结构程序设计方法选择结构程序设计方法4.3 4.3 循环结构程序设计方法循环结构程序设计方法

Page 47: asp.net 网站建设ppt课件

4.1 4.1 基本控件和顺序结构程序设计方法基本控件和顺序结构程序设计方法4.1.1 4.1.1 标签控件(标签控件( LabelLabel)) 标签(标签( LabelLabel )是)是 ASP.NET 2.0ASP.NET 2.0 中最常用的输出文本信息的中最常用的输出文本信息的控件,是一个服务器端控件。它用来显示文本,但不能被用户直控件,是一个服务器端控件。它用来显示文本,但不能被用户直接修改。接修改。 LabelLabel 中显示的文本是由其中显示的文本是由其 TextText 属性控制的,该属性属性控制的,该属性可以在设计时通过“属性”窗口设置或在运行时用代码赋值。可以在设计时通过“属性”窗口设置或在运行时用代码赋值。

Page 48: asp.net 网站建设ppt课件

4.1 4.1 基本控件和顺序结构程序设计方法基本控件和顺序结构程序设计方法4.1.2 4.1.2 按钮控件(按钮控件( ButtonButton )) ButtonButton 控件是控件是 ASP.NETASP.NET 应用程序中使用频度较高的控件,它应用程序中使用频度较高的控件,它是用户与程序进行交互的主要手段之一。在程序中用户通常可以是用户与程序进行交互的主要手段之一。在程序中用户通常可以单击页面中的某按钮来触发实现某特定功能的程序段,如单击单击页面中的某按钮来触发实现某特定功能的程序段,如单击【确定】按钮将用户在表单中填写的数据保存到数据库中,单击【确定】按钮将用户在表单中填写的数据保存到数据库中,单击【取消】按钮清除已填写的数据,回到初始状态,等等。【取消】按钮清除已填写的数据,回到初始状态,等等。

Page 49: asp.net 网站建设ppt课件

4.1 4.1 基本控件和顺序结构程序设计方法基本控件和顺序结构程序设计方法4.1.3 4.1.3 文本框控件(文本框控件( TextBoxTextBox )) TextBoxTextBox控件是控件是 ASP.NETASP.NET 程序中用来接收用户输入,或显示程序中用来接收用户输入,或显示输出信息的主要控件。向页面中添加输出信息的主要控件。向页面中添加 TextBoxTextBox控件、调整控件的控件、调整控件的大小及位置的方法与前面介绍的方法完全相同。大小及位置的方法与前面介绍的方法完全相同。

Page 50: asp.net 网站建设ppt课件

4.1 4.1 基本控件和顺序结构程序设计方法基本控件和顺序结构程序设计方法4.1.4 4.1.4 顺序结构程序设计顺序结构程序设计

顺序结构是程序设计中最简单、最常用的基本结构。在该顺序结构是程序设计中最简单、最常用的基本结构。在该结构中,各语句的执行是按照各语句书写次序一条接一条地顺序结构中,各语句的执行是按照各语句书写次序一条接一条地顺序执行,是其他结构的基础。即便是在选择结构或循环结构中,也执行,是其他结构的基础。即便是在选择结构或循环结构中,也总是以顺序结构作为其最终的子结构。总是以顺序结构作为其最终的子结构。【例4-1】

Page 51: asp.net 网站建设ppt课件

4.2 4.2 选择结构程序设计选择结构程序设计

4.2.1 4.2.1 选择结构程序设计的概念选择结构程序设计的概念 前面学习的顺序结构程序设计方法主要用于处理一些简单问题,前面学习的顺序结构程序设计方法主要用于处理一些简单问题,处理问题的方法绝对固定,灵活性较差。例如,在【例处理问题的方法绝对固定,灵活性较差。例如,在【例 4-14-1 】设】设计的简单算术计算器程序中,当用户在没有输入任何数据而单击计的简单算术计算器程序中,当用户在没有输入任何数据而单击某运算按钮时程序都会绝对地要求将空字符串转换为某运算按钮时程序都会绝对地要求将空字符串转换为 floatfloat 型数型数据,从而导致程序出错。据,从而导致程序出错。 如果希望避免这种错误,就必须使用选择结构程序设计方法进如果希望避免这种错误,就必须使用选择结构程序设计方法进行判断,若没有输入数据或只输入了一个数据,则显示提示信息,行判断,若没有输入数据或只输入了一个数据,则显示提示信息,并结束当前过程。并结束当前过程。 常见的判断及处理方法可分为以下两种:常见的判断及处理方法可分为以下两种: 1) “1) “ 如果某条件成立,则选择处理方法如果某条件成立,则选择处理方法 11 ,否则选择处理方法,否则选择处理方法22 或不作任何处理”。这种处理方式称为“单条件选择”。或不作任何处理”。这种处理方式称为“单条件选择”。 2) “2) “ 如果符合条件如果符合条件 11 ,则按方法,则按方法 AA 处理,符合条件处理,符合条件 22 按方法按方法 BB处理,符合条件处理,符合条件 33 按按 CC 方法处理,……,所有条件都不成立按方方法处理,……,所有条件都不成立按方法法 NN 处理或不作任何处理”。这种处理方法称为“多条件选择”。处理或不作任何处理”。这种处理方法称为“多条件选择”。

Page 52: asp.net 网站建设ppt课件

4.2 4.2 选择结构程序设计选择结构程序设计

4.2.2 if…else4.2.2 if…else结构结构

ifif 语句的语法格式为:语句的语法格式为: if (if ( 条件表达式条件表达式 )) {{ 语句序列语句序列 11 }} elseelse {{ 语句序列语句序列 22 }}

Page 53: asp.net 网站建设ppt课件

4.2 4.2 选择结构程序设计选择结构程序设计

4.2.2 if…else4.2.2 if…else结构结构

ifif 语句的语法格式为:语句的语法格式为: if (if ( 条件表达式条件表达式 )) {{ 语句序列语句序列 11 }} elseelse {{ 语句序列语句序列 22 }}

例4-2

Page 54: asp.net 网站建设ppt课件

4.2 4.2 选择结构程序设计选择结构程序设计

4.2.3 if…else if4.2.3 if…else if 结构结构 if…else ifif…else if 语句的语法结构如下:语句的语法结构如下: if (if ( 条件表达式条件表达式 1)1) {{ 条件表达式条件表达式 11 成立时执行的语句序列成立时执行的语句序列 }} else if (else if ( 条件表达式条件表达式 2)2) {{ 条件表达式条件表达式 22 成立时执行的语句序列成立时执行的语句序列 }} else if (else if ( 条件表达式条件表达式 n)n) {{ 条件表达式条件表达式 nn 成立时执行的语句序列成立时执行的语句序列 }} elseelse {{ 所有条件都不成立时执行的语句序列所有条件都不成立时执行的语句序列 }}

例4-3

Page 55: asp.net 网站建设ppt课件

4.3 4.3 循环结构程序设计循环结构程序设计

4.3.1 4.3.1 循环结构程序设计的概念循环结构程序设计的概念 循环结构程序设计实际上是一种特殊结构的选择结构。程循环结构程序设计实际上是一种特殊结构的选择结构。程序根据判断循环条件的结果决定是否执行循环体语句。循环体语序根据判断循环条件的结果决定是否执行循环体语句。循环体语句是循环结构中的处理语句块,用来执行重复的任务。句是循环结构中的处理语句块,用来执行重复的任务。 例如,计算高斯数列的和例如,计算高斯数列的和 1+2+3+4+……+1001+2+3+4+……+100 。根据题意需。根据题意需要设置要设置 100100 次循环,即执行次循环,即执行 100100 次加法运算。将循环变量次加法运算。将循环变量 ii 的初的初始值设置为始值设置为 11 ,每次将循环变量加,每次将循环变量加 11 并将其累加到另一变量并将其累加到另一变量 ss 中,中,循环条件为循环条件为 i<=100i<=100 。。 无论何种类型的循环结构,其特点都是循环体执行次数多无论何种类型的循环结构,其特点都是循环体执行次数多少都必须由循环类型与条件来决定,而且必须确保循环体的重复少都必须由循环类型与条件来决定,而且必须确保循环体的重复执行能在适当的时候(满足某种条件时)得以终止(即非死循执行能在适当的时候(满足某种条件时)得以终止(即非死循环)。而且循环结构也是可以嵌套使用的。环)。而且循环结构也是可以嵌套使用的。

Page 56: asp.net 网站建设ppt课件

4.3 4.3 循环结构程序设计循环结构程序设计

4.3.2 for4.3.2 for 循环循环 forfor 循环常常用于已知循环次数的情况(也称为“定次循循环常常用于已知循环次数的情况(也称为“定次循环”),使用该循环时,测试是否满足某个条件,如果满足条件,环”),使用该循环时,测试是否满足某个条件,如果满足条件,则进入下一次循环,否则,退出该循环。则进入下一次循环,否则,退出该循环。 1. for1. for 语句的语法格式语句的语法格式 forfor 循环语句的语法格式为:循环语句的语法格式为:

for (for ( 表达式表达式 1; 1; 表达式表达式 2; 2; 表达式表达式 3)3){{

循环语句序列(循环体)循环语句序列(循环体)}}

Page 57: asp.net 网站建设ppt课件

4.3 4.3 循环结构程序设计循环结构程序设计

4.3.3 while4.3.3 while 循环循环 在实际应用中常会遇到一些不定次循环的情况。例如,统在实际应用中常会遇到一些不定次循环的情况。例如,统计全班学生的成绩时,不同班级的学生人数可能是不同的,这就计全班学生的成绩时,不同班级的学生人数可能是不同的,这就意味着循环的次数在设计程序时无法确定,能确定的只是某条件意味着循环的次数在设计程序时无法确定,能确定的只是某条件被满足(后面不再有任何学生了)。此时,使用被满足(后面不再有任何学生了)。此时,使用 whilewhile 循环最为循环最为合适。合适。 whilewhile 循环语句的格式为:循环语句的格式为:

while (while ( 条件表达式条件表达式 )){{

循环语句序列循环语句序列}}

例4-6

Page 58: asp.net 网站建设ppt课件

4.3 4.3 循环结构程序设计循环结构程序设计

4.3.4 do…while4.3.4 do…while 循环循环 do…whiledo…while 循环非常类似于循环非常类似于 whilewhile 循环。一般情况下,可以循环。一般情况下,可以相互转换使用。它们之间的差别在于相互转换使用。它们之间的差别在于 whilewhile 循环的测试条件在每循环的测试条件在每一次循环开始时执行,而一次循环开始时执行,而 do…whiledo…while 循环的测试条件在每一次循循环的测试条件在每一次循环体结束时进行判断。环体结束时进行判断。 do…whiledo…while 语法的一般格式为:语法的一般格式为:dodo{{ 语句序列语句序列}}while (while ( 条件表达式条件表达式 ););

例4-7

Page 59: asp.net 网站建设ppt课件

4.3 4.3 循环结构程序设计循环结构程序设计

4.3.5 4.3.5 转向语句和循环的嵌套转向语句和循环的嵌套 1. break1. break语句语句

2. continue2. continue 语句语句 3. 3. 循环的嵌套循环的嵌套 例4-8

Page 60: asp.net 网站建设ppt课件

第第 55 章 数组、枚举与结构章 数组、枚举与结构本章讲述的主要内容本章讲述的主要内容

5.1 5.1 数组概述数组概述5.2 5.2 声明与访问数组声明与访问数组5.3 5.3 控件数组控件数组5.4 5.4 数组的属性与方法数组的属性与方法5.5 5.5 自定义数据类型自定义数据类型

Page 61: asp.net 网站建设ppt课件

5.1 5.1 数组概述数组概述

5.1.1 5.1.1 数组与数组元素数组与数组元素

在在 C# 2005C# 2005 中,把一组具有同一名字、不同下标的下标变量中,把一组具有同一名字、不同下标的下标变量称为数组。例如,称为数组。例如, A[6]A[6] 中的中的 AA 称为数组名,称为数组名, 66 是下标。一个数是下标。一个数组可以含有若干个下标变量(或称数组元素),下标也叫索引组可以含有若干个下标变量(或称数组元素),下标也叫索引(( IndexIndex),用来指出某个数组元素在数组中的位置。数组中第),用来指出某个数组元素在数组中的位置。数组中第一个元素的下标默认为一个元素的下标默认为 00 ,第二个元素的下标为,第二个元素的下标为 11 ,依次类推。,依次类推。所以数组元素的最大下标比数组元素个数少所以数组元素的最大下标比数组元素个数少 11 ,即如果某一数组,即如果某一数组有有 nn 个元素,则其最大下标为个元素,则其最大下标为 n-1n-1 。例如,一个含有。例如,一个含有 1010 个元素个元素的数组的数组 AA ,其第一个元素为,其第一个元素为 A[0]A[0] ,最后一个元素为,最后一个元素为 A[9]A[9]。数组。数组的下标必须是非负值的整型数据。的下标必须是非负值的整型数据。

Page 62: asp.net 网站建设ppt课件

5.1 5.1 数组概述数组概述

5.1.2 5.1.2 数组的类型数组的类型

在在 C# 2005C# 2005 中,数组属于引用类型,也就是说在数组变量中中,数组属于引用类型,也就是说在数组变量中存放的是对数组的引用,真正的数组元素数据存放在另一块内存存放的是对数组的引用,真正的数组元素数据存放在另一块内存区域中。区域中。 数组元素在内存中是连续存放的,这是数组元素用下标表数组元素在内存中是连续存放的,这是数组元素用下标表示其在数组中位置的根据。示其在数组中位置的根据。 C# 2005C# 2005 中的数组类型可以对应任何数据类型,即数组可以中的数组类型可以对应任何数据类型,即数组可以是基本数据类型,也可以是类类型,例如,可以声明一个文本框是基本数据类型,也可以是类类型,例如,可以声明一个文本框(( TextBoxTextBox)类型的数组。)类型的数组。 C# 2005C# 2005 通过通过 .NET.NET 框架中的框架中的 System.ArraySystem.Array类来支持数组,类来支持数组,因此,可以使用该类的属性与方法操作数组。因此,可以使用该类的属性与方法操作数组。

Page 63: asp.net 网站建设ppt课件

5.2 5.2 声明与访问数组声明与访问数组

5.2.1 5.2.1 声明和访问一维数组声明和访问一维数组 因为数组是引用类型的变量,所以声明数组的过程与声明因为数组是引用类型的变量,所以声明数组的过程与声明类对象相同,包含两个环节,即声明数组变量与数组变量的实例类对象相同,包含两个环节,即声明数组变量与数组变量的实例化。化。 1. 1. 声明一维数组声明一维数组 声明一维数组的一般格式为:声明一维数组的一般格式为: 类型名称 类型名称 [ ][ ] 数组名数组名 ;; 例如: 例如: int [ ]A;int [ ]A; 上述语句声明了一个名为上述语句声明了一个名为 AA 的整型数组。的整型数组。 数组在声明后必须实例化才可以使用。实例化数组的格式数组在声明后必须实例化才可以使用。实例化数组的格式为:为: 数组名称 数组名称 = new = new 类型名称类型名称 [[ 无符号整型表达式无符号整型表达式 ];];

Page 64: asp.net 网站建设ppt课件

5.2 5.2 声明与访问数组声明与访问数组

5.2.1 5.2.1 声明和访问一维数组声明和访问一维数组 2. 2. 访问数组访问数组 访问数组就是对数组中的元素进行读写操作,对数组中元访问数组就是对数组中的元素进行读写操作,对数组中元素的访问分为,对单个元素的访问与对所有元素的访问两种情况。素的访问分为,对单个元素的访问与对所有元素的访问两种情况。 对数组元素的访问最常见的两种形式是为数组元素赋值和对数组元素的访问最常见的两种形式是为数组元素赋值和用数组元素的值为其他变量赋值,即对数组元素的读写操作。用数组元素的值为其他变量赋值,即对数组元素的读写操作。 使用数组名与下标(索引)可以唯一确定数组中的某个元使用数组名与下标(索引)可以唯一确定数组中的某个元素,从而实现对该元素的访问。例如:素,从而实现对该元素的访问。例如: int x = 4, y = 5; int [ ]A = new int[3]{1,2,3};int x = 4, y = 5; int [ ]A = new int[3]{1,2,3}; x = A[0]; //x = A[0]; // 使用数组使用数组 AA 的第的第 11 个元素的值为其他变量赋个元素的值为其他变量赋值值 A[1] = y;A[1] = y; //// 为数组为数组 AA 的第的第 22 个元素赋值个元素赋值

Page 65: asp.net 网站建设ppt课件

5.2 5.2 声明与访问数组声明与访问数组

5.2.1 5.2.1 声明和访问一维数组声明和访问一维数组 2. 2. 访问数组访问数组 访问数组就是对数组中的元素进行读写操作,对数组中元访问数组就是对数组中的元素进行读写操作,对数组中元素的访问分为,对单个元素的访问与对所有元素的访问两种情况。素的访问分为,对单个元素的访问与对所有元素的访问两种情况。 对数组元素的访问最常见的两种形式是为数组元素赋值和对数组元素的访问最常见的两种形式是为数组元素赋值和用数组元素的值为其他变量赋值,即对数组元素的读写操作。用数组元素的值为其他变量赋值,即对数组元素的读写操作。 使用数组名与下标(索引)可以唯一确定数组中的某个元使用数组名与下标(索引)可以唯一确定数组中的某个元素,从而实现对该元素的访问。例如:素,从而实现对该元素的访问。例如: int x = 4, y = 5; int [ ]A = new int[3]{1,2,3};int x = 4, y = 5; int [ ]A = new int[3]{1,2,3}; x = A[0]; //x = A[0]; // 使用数组使用数组 AA 的第的第 11 个元素的值为其他变量赋个元素的值为其他变量赋值值 A[1] = y; //A[1] = y; // 为数组为数组 AA 的第的第 22 个元素赋值 个元素赋值 例5-1

Page 66: asp.net 网站建设ppt课件

5.2 5.2 声明与访问数组声明与访问数组

5.2.1 5.2.1 声明和访问一维数组声明和访问一维数组 3. foreach3. foreach 循环语句循环语句 C# 2005C# 2005 专门提供了一种用于遍历数组的专门提供了一种用于遍历数组的 foreachforeach 循环语句。循环语句。所谓“遍历”是指依次访问数组中所有元素。所谓“遍历”是指依次访问数组中所有元素。 foreachforeach 循环语句的格式为:循环语句的格式为: foreach(foreach( 类型名称 变量名称 类型名称 变量名称 in in 数组名称数组名称 )) {{ 循环体语句序列循环体语句序列 }}

Page 67: asp.net 网站建设ppt课件

5.2 5.2 声明与访问数组声明与访问数组

5.2.2 5.2.2 声明和访问多维数组声明和访问多维数组 在多维数组中,比较常用的是二维数组,声明二维数组与在多维数组中,比较常用的是二维数组,声明二维数组与声明一维数组格式类似。例如:声明一维数组格式类似。例如: int[ , ] A = new int[2,2]{{1,2},{3,4}};int[ , ] A = new int[2,2]{{1,2},{3,4}}; 声明多维数组时,用逗号表示维数,一个逗号表示二维数声明多维数组时,用逗号表示维数,一个逗号表示二维数组,两个逗号表示三维数组,依次类推。组,两个逗号表示三维数组,依次类推。 上例中的“上例中的“ int [ , ]A”int [ , ]A” 表示声明一个二维数组;“表示声明一个二维数组;“ new new int[2,2]”int[2,2]” 表示实例化数组时,该数组为一个两行两列的数组,表示实例化数组时,该数组为一个两行两列的数组,其中逗号左边的值为行数,逗号右边的值为列数;为多维数组指其中逗号左边的值为行数,逗号右边的值为列数;为多维数组指定初始化值时,每一行的值须用大括号括起来,行与行之间用逗定初始化值时,每一行的值须用大括号括起来,行与行之间用逗号分隔。号分隔。 例5-2

Page 68: asp.net 网站建设ppt课件

5.3 5.3 控件数组控件数组

5.3.1 5.3.1 创建控件数组创建控件数组 在在 VS 2005VS 2005 中无法使用可视化的方法直接创建控件数组,只中无法使用可视化的方法直接创建控件数组,只能在设计视图中添加独立的同类控件,而后通过代码创建需要的能在设计视图中添加独立的同类控件,而后通过代码创建需要的控件数组。控件数组。 1. 1. 声明控件数组声明控件数组 声明控件数组的语法格式如下:声明控件数组的语法格式如下: 控件类名控件类名 [ ] [ ] 数组名 数组名 = new = new 控件类名控件类名 [n];[n]; 其中,控件类名为各控件在工具箱中的名称,如其中,控件类名为各控件在工具箱中的名称,如 LabelLabel 、、 BButtonutton 、、 TextBoxTextBox等等;数组名为用户指定的数组名称;等等;数组名为用户指定的数组名称; nn 为数为数组包含的元素个数组包含的元素个数

Page 69: asp.net 网站建设ppt课件

5.3 5.3 控件数组控件数组5.3.1 5.3.1 创建控件数组创建控件数组 2. 2. 为控件数组赋值为控件数组赋值 为控件数组赋值的方法与为普通数组赋值的方法类似,可为控件数组赋值的方法与为普通数组赋值的方法类似,可以在声明数组时赋值,也可以在声明后单独赋值。以在声明数组时赋值,也可以在声明后单独赋值。 例如:例如: TextBox[ ] txtArray = new TextBox[4]{TextBox1, TextBox[ ] txtArray = new TextBox[4]{TextBox1, TextBox2, TextBox3, TextBox4,}; TextBox2, TextBox3, TextBox4,}; 或:或: TextBox[ ] txtArray = new TextBox[4];TextBox[ ] txtArray = new TextBox[4]; txtArray[0] = txtArray[0] = TextBox1; TextBox1; txtArray[1] = TextBox2; txtArray[2] = TextBox3;txtArray[1] = TextBox2; txtArray[2] = TextBox3; txtArray[3] = TextBox4;txtArray[3] = TextBox4;

Page 70: asp.net 网站建设ppt课件

5.3 5.3 控件数组控件数组5.3.2 5.3.2 使用控件数组使用控件数组

控件数组创建并赋值后,可以象对普通数组那样通过循环控件数组创建并赋值后,可以象对普通数组那样通过循环操作数组元素,这对简化代码编写是十分有意义的。操作数组元素,这对简化代码编写是十分有意义的。

例5-3

Page 71: asp.net 网站建设ppt课件

5.3 5.3 控件数组控件数组5.3.3 5.3.3 多控件共享单一事件多控件共享单一事件 在程序设计过程中常会遇到页面中同类控件的同类事件问在程序设计过程中常会遇到页面中同类控件的同类事件问题。例如,在【例题。例如,在【例 4-14-1】中设计的“简单算术计算器”中有表示】中设计的“简单算术计算器”中有表示+、-、+、-、××、、÷÷的的 44 个按钮控件,用户单击按钮采用相应的计个按钮控件,用户单击按钮采用相应的计算方法。认真阅读程序代码后,可以看到计算方法实际上只有一算方法。认真阅读程序代码后,可以看到计算方法实际上只有一个运算符不同,其他部分完全相同。此时,若使用多控件共享单个运算符不同,其他部分完全相同。此时,若使用多控件共享单一事件的方法,可大幅度减少代码的编写量,使程序更明了易读。一事件的方法,可大幅度减少代码的编写量,使程序更明了易读。 1. 1. 在源视图中统一事件名称在源视图中统一事件名称 2. 2. 编写共享事件过程编写共享事件过程

例5-4

Page 72: asp.net 网站建设ppt课件

5.4 5.4 数组的属性与方法数组的属性与方法5.4.1 5.4.1 数组的常用属性数组的常用属性 1. 1. 数组的数组的 LengthLength 属性属性 数组的数组的 LengthLength 属性是数组对象的一个只读属性,该属性的值属性是数组对象的一个只读属性,该属性的值在数组实例化时被初始化,表示数组包含多少个元素。在数组实例化时被初始化,表示数组包含多少个元素。 2. IsReadOnly2. IsReadOnly属性属性 数组具有数组具有 IsReadOnlyIsReadOnly属性,该属性可以设置数组或数组列表属性,该属性可以设置数组或数组列表中的元素是否为只读的。中的元素是否为只读的。 在创建数组时,在创建数组时, IsReadOnlyIsReadOnly属性值默认为属性值默认为 falsefalse (假),即(假),即数组中的元素值允许被读取和修改。如欲保护元素值不被修改,则数组中的元素值允许被读取和修改。如欲保护元素值不被修改,则可以设置该属性值为可以设置该属性值为 truetrue (真)。一旦将数组设置为只读的,则(真)。一旦将数组设置为只读的,则任何对数组元素进行修改的操作都将产生错误。任何对数组元素进行修改的操作都将产生错误。

Page 73: asp.net 网站建设ppt课件

5.4 5.4 数组的属性与方法数组的属性与方法5.4.2 5.4.2 数组的常用方法数组的常用方法 1. Clone1. Clone 与与 CopyToCopyTo 方法方法 克隆(克隆( CloneClone )与拷贝()与拷贝( CopyToCopyTo )方法均可以实现数组之间)方法均可以实现数组之间的数据复制。 的数据复制。 CloneClone 方法的语法格式为:方法的语法格式为: 目标数组名称目标数组名称 =(=( 数组类型名称数组类型名称 )) 源数组名称源数组名称 .Clone( );.Clone( ); 2. Array.Sort2. Array.Sort (排序)方法(排序)方法 使用数组的使用数组的 SortSort 方法可以将数组中的元素按升序重新排列。方法可以将数组中的元素按升序重新排列。 SortSort 方法的语法格式为:方法的语法格式为: Array.Sort(Array.Sort( 数组名称数组名称 ););

Page 74: asp.net 网站建设ppt课件

5.4 5.4 数组的属性与方法数组的属性与方法5.4.2 5.4.2 数组的常用方法数组的常用方法 3. Array.Reverse3. Array.Reverse (反转)方法(反转)方法 数组的数组的 ReverseReverse (反转)方法,顾名思义是用于数组元素排列(反转)方法,顾名思义是用于数组元素排列顺序反转的方法。将该方法与顺序反转的方法。将该方法与 SortSort 方法结合,可以实现降序排序。方法结合,可以实现降序排序。ReverseReverse 方法的语法格式为:方法的语法格式为: Array.Reverse(Array.Reverse( 数组名称数组名称 ,, 起始位置起始位置 ,, 反转范围反转范围 );); 其中,“起始位置”是指从第几个数组元素开始进行反转;其中,“起始位置”是指从第几个数组元素开始进行反转;“反转范围”是指有多少数组元素参与反转操作。“反转范围”是指有多少数组元素参与反转操作。

Page 75: asp.net 网站建设ppt课件

5.5 5.5 自定义数据类型自定义数据类型5.5.1 5.5.1 结构类型结构类型 1. 1. 定义结构定义结构 结构的定义需要使用结构的定义需要使用 structstruct 关键字,定义格式如下:关键字,定义格式如下: struct struct 结构类型名称结构类型名称 {{ public public 类型名称类型名称 1 1 结构成员名称结构成员名称 1;1; public public 类型名称类型名称 2 2 结构成员名称结构成员名称 2;2; …… …… }}

Page 76: asp.net 网站建设ppt课件

5.5 5.5 自定义数据类型自定义数据类型5.5.1 5.5.1 结构类型结构类型 2. 2. 声明结构变量声明结构变量 定义结构后,一个新的数据类型就产生了,可以像使用基本数定义结构后,一个新的数据类型就产生了,可以像使用基本数据类型那样,用结构来声明变量。据类型那样,用结构来声明变量。 例如:例如: employee tom;employee tom; ////声明一个结构变量声明一个结构变量 tomtom 也可以在声明结构变量的同时,为结构变量赋值,为结构变量也可以在声明结构变量的同时,为结构变量赋值,为结构变量赋值实质上是为结构变量中的成员赋值,但由于结构变量常常包含赋值实质上是为结构变量中的成员赋值,但由于结构变量常常包含不止一个结构成员,所以在声明时为结构变量赋值需要使用大括号,不止一个结构成员,所以在声明时为结构变量赋值需要使用大括号,各项值之间用逗号分隔。例如:各项值之间用逗号分隔。例如: employee tom = {"employee tom = {" 汤姆汤姆 ",true,{1980,5,26},"13868782069",",true,{1980,5,26},"13868782069",3500}; 3500};

Page 77: asp.net 网站建设ppt课件

5.5 5.5 自定义数据类型自定义数据类型5.5.1 5.5.1 结构类型结构类型 3. 3. 访问结构变量访问结构变量 一般对结构变量的访问都转化为对结构中的成员的访问,由于一般对结构变量的访问都转化为对结构中的成员的访问,由于结构中的成员都依赖于一个结构变量,因此使用结构中的成员必须结构中的成员都依赖于一个结构变量,因此使用结构中的成员必须指出访问的结构变量。方法是在结构变量和成员之间通过运算符指出访问的结构变量。方法是在结构变量和成员之间通过运算符“.”连接在一起。即:“.”连接在一起。即: 结构变量名结构变量名 .. 成员名成员名 例5-5

Page 78: asp.net 网站建设ppt课件

5.5 5.5 自定义数据类型自定义数据类型5.5.2 5.5.2 枚举类型枚举类型 1. 1. 定义枚举类型定义枚举类型 定义枚举类型使用关键字定义枚举类型使用关键字 enumenum ,定义枚举类型的一般格式为:,定义枚举类型的一般格式为: enum enum 枚举类型名称枚举类型名称 {{ 符号常量符号常量 1,1, 符号常量符号常量 2,2, … … }}

Page 79: asp.net 网站建设ppt课件

5.5 5.5 自定义数据类型自定义数据类型5.5.2 5.5.2 枚举类型枚举类型 2. 2. 声明与访问枚举变量声明与访问枚举变量 声明枚举变量与声明基本类型变量的格式相同,例如:声明枚举变量与声明基本类型变量的格式相同,例如: SolarSystem S;SolarSystem S; //// 声明一个枚举变量声明一个枚举变量 SS 可以在声明枚举变量的同时为变量赋值,枚举变量的值,必须可以在声明枚举变量的同时为变量赋值,枚举变量的值,必须是枚举成员,枚举成员需要用枚举类型引导,例如:是枚举成员,枚举成员需要用枚举类型引导,例如: SolarSystem S= SolarSystem.Sun;SolarSystem S= SolarSystem.Sun; 对枚举变量的访问如同对基本类型变量的访问,例如:对枚举变量的访问如同对基本类型变量的访问,例如: SolarSystem S = SolarSystem.Sun;SolarSystem S = SolarSystem.Sun; int iNum = S;int iNum = S; //// 将将 SS 的值赋给整型变量的值赋给整型变量 iNumiNum

Page 80: asp.net 网站建设ppt课件

第第 66 章 章 HTMLHTML 控件和控件和 WebWeb 服务器服务器控件控件本章讲述的主要内容本章讲述的主要内容

6.1 ASP.NET6.1 ASP.NET 控件概述控件概述6.2 6.2 标准服务器端控件标准服务器端控件6.3 6.3 数据验证控件数据验证控件6.4 6.4 用户自定义控件用户自定义控件

Page 81: asp.net 网站建设ppt课件

66.1 .1 ASP.NETASP.NET 控件概述控件概述6.1.1 HTML6.1.1 HTML控件控件 HTMLHTML控件在默认情况下属于客户端(浏览器)控件,服务控件在默认情况下属于客户端(浏览器)控件,服务器无法对其进行控制。器无法对其进行控制。 HTMLHTML控件是从控件是从 HTMLHTML标记衍生而来的,每标记衍生而来的,每个控件对应于一个或一组个控件对应于一个或一组 HTMLHTML 标记。例如,前面我们经常使用标记。例如,前面我们经常使用的的 HTMLHTML表格控件,就是一个常用于页面布局工具的表格控件,就是一个常用于页面布局工具的 HTMLHTML控件,控件,如果不使用工具箱中的控件,而直接在源视图中书写相应的如果不使用工具箱中的控件,而直接在源视图中书写相应的 HTMHTMLL代码也可以得到相同的效果,但使用控件可以节省大量的代码代码也可以得到相同的效果,但使用控件可以节省大量的代码书写时间,且使操作变成了可视化的方式。书写时间,且使操作变成了可视化的方式。 HTMLHTML控件可以通过修改代码将其变成控件可以通过修改代码将其变成 WebWeb 服务器端控件,几服务器端控件,几乎所有的乎所有的 HTMLHTML标记只要加上标记只要加上 runat = "server"runat = "server",这个服务器控,这个服务器控件标识属性后都可以变成服务器端控件。这与普通件标识属性后都可以变成服务器端控件。这与普通 HTMLHTML标记相标记相比最大的区别在于,服务器端控件可以通过服务器端代码来控制。比最大的区别在于,服务器端控件可以通过服务器端代码来控制。

Page 82: asp.net 网站建设ppt课件

66.1 .1 ASP.NETASP.NET 控件概述控件概述6.1.2 6.1.2 服务器端控件服务器端控件

1. 1. 服务器端控件的执行过程服务器端控件的执行过程 当用户请求一个包含有当用户请求一个包含有 WebWeb 服务器端控件的服务器端控件的 .aspx.aspx 页面时,页面时,服务器首先对页面进行处理,将页面中包含的服务端控件及其他内服务器首先对页面进行处理,将页面中包含的服务端控件及其他内容解释成标准的容解释成标准的 HTMLHTML代码,然后将处理结果以标准代码,然后将处理结果以标准 HTMLHTML 的形式一的形式一次性发送给客户端。次性发送给客户端。 2. ASP.NET2. ASP.NET 页面的处理过程页面的处理过程 当用户通过浏览器发出一个对当用户通过浏览器发出一个对 ASP.NETASP.NET 页面的请求后,页面的请求后, WebWeb服务器将用户的请求交由服务器将用户的请求交由 ASP.NETASP.NET引擎来处理。系统首先会检查在引擎来处理。系统首先会检查在服务器缓存中是否有该页面,或此页面是否已被编译成了服务器缓存中是否有该页面,或此页面是否已被编译成了 .dll.dll 文文件(件( Dynamic Link LibraryDynamic Link Library,动态链接库)。若没有则将页面转,动态链接库)。若没有则将页面转换为源程序代码,然后由编译器将其编译成换为源程序代码,然后由编译器将其编译成 .dll.dll 文件,否则直接文件,否则直接利用已编译过的利用已编译过的 .dll.dll 文件建立对象,并将执行结果返回到客户端文件建立对象,并将执行结果返回到客户端浏览器。浏览器。

Page 83: asp.net 网站建设ppt课件

6.2 6.2 标准服务器端控件标准服务器端控件6.2.1 ImageButton6.2.1 ImageButton和和 HyperLinkHyperLink控件控件 ImageButtonImageButton (图像按钮)、(图像按钮)、 ImageImage (图像)和(图像)和 HyperLinkHyperLink(超链接)控件都可以在控件中显示图片,且都具有超链接跳转的(超链接)控件都可以在控件中显示图片,且都具有超链接跳转的功能。功能。 1. ImageButton1. ImageButton控件控件

Page 84: asp.net 网站建设ppt课件

6.2 6.2 标准服务器端控件标准服务器端控件6.2.1 ImageButton6.2.1 ImageButton和和 HyperLinkHyperLink控件控件 2. HyperLink2. HyperLink 控件控件 双击双击 HyperLinkHyperLink (超链接)控件在工具箱中的图标,可将控(超链接)控件在工具箱中的图标,可将控件添加到当前页面光标所在位置。件添加到当前页面光标所在位置。 HyperLinkHyperLink 控件与标签控件很相控件与标签控件很相似,但该控件支持用户的单击事件,可以在控件中显示图片,可以似,但该控件支持用户的单击事件,可以在控件中显示图片,可以指定超链接的目标框架等特有属性。 指定超链接的目标框架等特有属性。

Page 85: asp.net 网站建设ppt课件

6.2 6.2 标准服务器端控件标准服务器端控件6.2.2 Image6.2.2 Image和和 ImageMapImageMap控件控件 ImageImage 控件和控件和 ImageMapImageMap 控件都是用于图片显示的控件。控件都是用于图片显示的控件。 1. Image1. Image 控件控件

Page 86: asp.net 网站建设ppt课件

6.2 6.2 标准服务器端控件标准服务器端控件6.2.2 Image6.2.2 Image和和 ImageMapImageMap控件控件 2. ImageMap2. ImageMap 控件 控件 例6-1 利用利用 ImageMapImageMap 控件可以创建一个图像,该图像包含任意数目控件可以创建一个图像,该图像包含任意数目的,用户可以单击的区域,这些区域称为“作用点”。每一个作用的,用户可以单击的区域,这些区域称为“作用点”。每一个作用点都可以是一个单独的超链接或回发事件。点都可以是一个单独的超链接或回发事件。 ImageMapImageMap 控件与其他控件与其他网页编辑工具(如网页编辑工具(如 DreamwareDreamware )提供的“热点地图”功能类似。)提供的“热点地图”功能类似。ImageMapImageMap 控件主要由以下两个部分组成:控件主要由以下两个部分组成: 1) 1) 显示于控件中的图像。它可是任何标准显示于控件中的图像。它可是任何标准 WebWeb 图形格式的图图形格式的图形,如形,如 *.gif*.gif 、、 *.jpg *.jpg 或或 *.png*.png 文件,该图像构成用户操作界面。文件,该图像构成用户操作界面。 2) 2) 隐藏在图像中的作用点集合。每个作用点控件都是一个不隐藏在图像中的作用点集合。每个作用点控件都是一个不同的同的 WebWeb元素。对于每个作用点控件,需要定义其形状(圆形、矩元素。对于每个作用点控件,需要定义其形状(圆形、矩形或多边形)以及用于指定作用点位置和大小的坐标。例如,如果形或多边形)以及用于指定作用点位置和大小的坐标。例如,如果创建一个圆形作用点,则应定义圆心的创建一个圆形作用点,则应定义圆心的 xx 、、 yy 坐标及圆的半径。坐标及圆的半径。

Page 87: asp.net 网站建设ppt课件

6.2 6.2 标准服务器端控件标准服务器端控件6.2.3 RadioButton6.2.3 RadioButton和和 RadioButtonListRadioButtonList控件控件 1. 1. 单选按钮控件(单选按钮控件( RadioButtonRadioButton ))

Page 88: asp.net 网站建设ppt课件

6.2 6.2 标准服务器端控件标准服务器端控件6.2.3 RadioButton6.2.3 RadioButton和和 RadioButtonListRadioButtonList控件控件 2. 2. 单选按钮组控件(单选按钮组控件( RadioButtonListRadioButtonList ))

Page 89: asp.net 网站建设ppt课件

6.2 6.2 标准服务器端控件标准服务器端控件6.2.4 CheckBox6.2.4 CheckBox和和 CheckListCheckList控件控件 CheckBoxCheckBox(复选框)与(复选框)与 CheckListCheckList (复选框组)控件的作用(复选框组)控件的作用十分相似,都是用于向用户提供多选输入数据的控件。用户可以在十分相似,都是用于向用户提供多选输入数据的控件。用户可以在控件提供的多个选项中选择一个或多个。被选中的对象中带有一个控件提供的多个选项中选择一个或多个。被选中的对象中带有一个“√”标记,“√”标记, CheckBoxCheckBox 和和 CheckListCheckList 控件的外观如图控件的外观如图 6-156-15 所示。所示。

Page 90: asp.net 网站建设ppt课件

6.2 6.2 标准服务器端控件标准服务器端控件6.2.5 ListBox6.2.5 ListBox 和和 DropDownListDropDownList 控件控件 ListBoxListBox(列表框)和(列表框)和 DropDownListDropDownList (下拉列表框)控件也(下拉列表框)控件也是一种常见的用于向用户提供输入数据选项的控件,其外观如图是一种常见的用于向用户提供输入数据选项的控件,其外观如图6-156-15 和图和图 6-166-16 所示。所示。

例6-2

Page 91: asp.net 网站建设ppt课件

6.2 6.2 标准服务器端控件标准服务器端控件6.2.6 FileUpload6.2.6 FileUpload控件控件文件上传(文件上传( FileUploadFileUpload )控件,顾名思义是用于将文件从本地计)控件,顾名思义是用于将文件从本地计算机上传到远程算机上传到远程 WebWeb 服务器的控件,使用该控件可替代服务器的控件,使用该控件可替代 ASPASP 程序中程序中常用常用 FSOFSO(文件系统对象),且(文件系统对象),且 FileUploadFileUpload 控件具有更高的效率控件具有更高的效率和安全性。和安全性。 FileUploadFileUpload 控件在工具箱的图标为 。控件在工具箱的图标为 。 如图如图 6-216-21 所示,从外观上看所示,从外观上看 FileUploadFileUpload 控件有一个文本框控件有一个文本框和一个【浏览】按钮控件组成,用户可直接在文本框中输入希望上和一个【浏览】按钮控件组成,用户可直接在文本框中输入希望上传的文件名(包括文件存放路径)。若用户在传的文件名(包括文件存放路径)。若用户在 WebWeb 页面中单击控件页面中单击控件的【浏览】按钮时,系统将自动弹出一个“选择文件”对话框(类的【浏览】按钮时,系统将自动弹出一个“选择文件”对话框(类似与似与 WindowsWindows 的“打开”对话框),通过该对话框用户可根据需要的“打开”对话框),通过该对话框用户可根据需要选择希望上传到远程选择希望上传到远程 WebWeb 服务器的文件。出于安全方面的考虑,不服务器的文件。出于安全方面的考虑,不能将文件名预先加载到能将文件名预先加载到 FileUploadFileUpload 控件中。控件中。

Page 92: asp.net 网站建设ppt课件

6.2 6.2 标准服务器端控件标准服务器端控件6.2.7 Table6.2.7 Table控件控件 前面介绍过在前面介绍过在 WebWeb 页面中用于页面布局的页面中用于页面布局的 HTMLHTML表格控件,那表格控件,那是一种用于静态环境的布局工具。在工具箱“标准”选项卡中也有是一种用于静态环境的布局工具。在工具箱“标准”选项卡中也有一个一个 TableTable 控件,其图标为 。这是一个控件,其图标为 。这是一个 WebWeb 服务器端控件,使用服务器端控件,使用该控件可更易于编程,用户可通过程序代码方便地控制表格中显示该控件可更易于编程,用户可通过程序代码方便地控制表格中显示的内容及表格的行、列数。的内容及表格的行、列数。 TabelTabel 控件除了具有控件除了具有 HTMLHTML表格的一般属性,如表格的一般属性,如 BackImageUrlBackImageUrl(背景图片)、(背景图片)、 BackColorBackColor (背景颜色)、(背景颜色)、 BorderStyleBorderStyle (边框样(边框样式)、式)、 BorderColorBorderColor (背景颜色)、(背景颜色)、 CellPaddingCellPadding (单元格内间(单元格内间距)、距)、 CellSpacingCellSpacing (单元格之间距离)、(单元格之间距离)、 GridLinesGridLines (单元格框(单元格框线)、线)、 WidthWidth (宽)、(宽)、 HeightHeight (高)等,还具有两个关键的子对(高)等,还具有两个关键的子对象象 TableRowTableRow 和和 TableCellTableCell ,前者用于创建和设置表格中的行,后,前者用于创建和设置表格中的行,后者用于创建和设置表格中的列。通常可以通过者用于创建和设置表格中的列。通常可以通过 TableCellTableCell 对象的对象的 TTextext 属性从单元格读取,或向其中写入数据。 属性从单元格读取,或向其中写入数据。 例6-4

Page 93: asp.net 网站建设ppt课件

6.2 6.2 标准服务器端控件标准服务器端控件6.2.8 6.2.8 容器控件容器控件

所谓“容器”控件是指可以安放其他控件的控件。所谓“容器”控件是指可以安放其他控件的控件。 ASP.NET 2.ASP.NET 2.00 提供有两种容器控件,提供有两种容器控件, PlaceHolderPlaceHolder 和和 PanelPanel 控件。控件。 PlaceHolderPlaceHolder 控件用于在控件用于在 WebWeb 页面上保留一个位置,以便在程页面上保留一个位置,以便在程序运行时向其中动态地添加其他控件,这对动态网页的布局设计是序运行时向其中动态地添加其他控件,这对动态网页的布局设计是十分有利的。十分有利的。 PanelPanel 控件对应于控件对应于 HTMLHTML的的 <div><div> 标记,其作用与标记,其作用与 PlaceHolderPlaceHolder控件相似,可以将放置在其中的一组控件作为一个整体来操作。最控件相似,可以将放置在其中的一组控件作为一个整体来操作。最常用的是通过设置常用的是通过设置 PanelPanel 的的 VisibleVisible 属性来控制这一组控件的显示属性来控制这一组控件的显示或隐藏。或隐藏。

【例6-5】

Page 94: asp.net 网站建设ppt课件

6.2 6.2 标准服务器端控件标准服务器端控件6.2.9 Calendar6.2.9 Calendar 控件控件 1. Calendar1. Calendar 控件的常用属性控件的常用属性 2. Calendar2. Calendar 控件的主要事件控件的主要事件 3. Calendar3. Calendar 控件应用实例控件应用实例 【例6-6】

Page 95: asp.net 网站建设ppt课件

6.2 6.2 标准服务器端控件标准服务器端控件6.2.10 AdRotator6.2.10 AdRotator 控件控件 AdRotatorAdRotator (广告)控件,可配合(广告)控件,可配合 XMLXML说明文件,在页面中产生说明文件,在页面中产生一个可动态显示图片的广告展现框。若将鼠标指针指向图片,可显一个可动态显示图片的广告展现框。若将鼠标指针指向图片,可显示出预设的广告词,单击图片可导航到预设的示出预设的广告词,单击图片可导航到预设的 URLURL地址。用户每次地址。用户每次刷新页面广告展现框中的图片都会有所不同,且不同图片出现的频刷新页面广告展现框中的图片都会有所不同,且不同图片出现的频率,可由率,可由 XMLXML 文件中的设置决定。文件中的设置决定。

Page 96: asp.net 网站建设ppt课件

6.3 6.3 数据验证控件数据验证控件6.3.1 6.3.1 数据验证控件概述数据验证控件概述 数据验证控件可以像其他数据验证控件可以像其他 WebWeb 服务器控件一样添加到服务器控件一样添加到 WebWeb 页页面中。不同的验证控件用于特定的检验类型,如范围检查、模式匹面中。不同的验证控件用于特定的检验类型,如范围检查、模式匹配以及确保用户不会跳过必填字段的配以及确保用户不会跳过必填字段的 RequierdFieldValidatorRequierdFieldValidator 等。等。在实际应用中,通常将多个验证控件附加到同一个输入控件(如文在实际应用中,通常将多个验证控件附加到同一个输入控件(如文本框)上,从而实现多方面控制用户输入的有效性。例如,可以指本框)上,从而实现多方面控制用户输入的有效性。例如,可以指定文本框为必填,同时输入的数据只能是某特定范围内的数据等。定文本框为必填,同时输入的数据只能是某特定范围内的数据等。 1. 1. 数据验证控件的类型数据验证控件的类型 ASP.NET 2.0ASP.NET 2.0 提供了提供了 66 类数据验证控件,这些控件存放在工具类数据验证控件,这些控件存放在工具箱“验证”选项卡中。其名称及说明见表箱“验证”选项卡中。其名称及说明见表 6-136-13 。。

Page 97: asp.net 网站建设ppt课件

6.3 6.3 数据验证控件数据验证控件6.3.1 6.3.1 数据验证控件概述数据验证控件概述

Page 98: asp.net 网站建设ppt课件

6.3 6.3 数据验证控件数据验证控件6.3.1 6.3.1 数据验证控件概述数据验证控件概述 2. 2. 数据验证的处理机制数据验证的处理机制 在处理用户输入时,在处理用户输入时, WebWeb 窗体将用户的输入传送给与输入控窗体将用户的输入传送给与输入控件相关联的验证控件。验证控件检测用户的输入,并设置属性以指件相关联的验证控件。验证控件检测用户的输入,并设置属性以指示是否通过了验证。处理完所有的验证控件后,将设置示是否通过了验证。处理完所有的验证控件后,将设置 WebWeb 窗体上窗体上的的 IsValidIsValid 属性,该属性值为属性,该属性值为 TrueTrue 表示所有验证通过,否则该属表示所有验证通过,否则该属性值为性值为 FalseFalse 。如果验证控件发现用户输入的数据有错误,则出错。如果验证控件发现用户输入的数据有错误,则出错信息可由该验证控件显示到页面中,也可以由布局在页面其他位置信息可由该验证控件显示到页面中,也可以由布局在页面其他位置的的 ValidationSummaryValidationSummary控件,专门负责显示出错信息。控件,专门负责显示出错信息。 如果客户端使用的是如果客户端使用的是 IE4.0IE4.0 以上版本的浏览器,即支持以上版本的浏览器,即支持 DHTMLDHTML,,则验证控件可以使用客户端脚本进行数据验证,由于减少了一次服则验证控件可以使用客户端脚本进行数据验证,由于减少了一次服务器的往返,所以使用客户端脚本验证的效率更高一些。务器的往返,所以使用客户端脚本验证的效率更高一些。

Page 99: asp.net 网站建设ppt课件

6.3 6.3 数据验证控件数据验证控件6.3.1 6.3.1 数据验证控件概述数据验证控件概述 3. 3. 验证控件的通用属性验证控件的通用属性

Page 100: asp.net 网站建设ppt课件

6.3 6.3 数据验证控件数据验证控件6.3.2 6.3.2 必须项验证控件(必须项验证控件( RequiredFieldValidatorRequiredFieldValidator )) RequiredFieldValidatorRequiredFieldValidator 控件用于判断用户是否完成了必须控件用于判断用户是否完成了必须填写的输入数据。正常情况下验证控件在页面中是不显示的,只有填写的输入数据。正常情况下验证控件在页面中是不显示的,只有在出现了输入错误时,才会在控件中显示出错提示信息。在页面布在出现了输入错误时,才会在控件中显示出错提示信息。在页面布局时,一般可将验证控件放置在被验证控件的旁边。局时,一般可将验证控件放置在被验证控件的旁边。当执行验证时,若验证控件的初始值(当执行验证时,若验证控件的初始值( InitialValueInitialValue 属性值)没属性值)没有改变,则导致验证失败。有改变,则导致验证失败。 InitialValueInitialValue 的初始默认值为空字符的初始默认值为空字符串。为了避免用户输入若干空格来通过验证,系统会在验证前自动串。为了避免用户输入若干空格来通过验证,系统会在验证前自动调用调用 Trim()Trim() 方法,将字符串前后多于的空格移除。也就是说被验方法,将字符串前后多于的空格移除。也就是说被验证控件中不能输入完全由空格组成的字符串。证控件中不能输入完全由空格组成的字符串。

例6-8

Page 101: asp.net 网站建设ppt课件

6.3 6.3 数据验证控件数据验证控件6.3.3 6.3.3 比较验证控件(比较验证控件( CompareValidatorCompareValidator )) CompareValidatorCompareValidator 将输入控件的值与常数或其他输入控件中将输入控件的值与常数或其他输入控件中的值进行比较,以确定这两个值是否与由比较运算符(的值进行比较,以确定这两个值是否与由比较运算符( ==== 、、 !=!=、、<<、、 >>等)指定的关系匹配。等)指定的关系匹配。

例6-9

Page 102: asp.net 网站建设ppt课件

6.3 6.3 数据验证控件数据验证控件6.3.4 6.3.4 范围验证控件(范围验证控件( RangeValidatorRangeValidator )) RangeValidatorRangeValidator 控件的作用是计算被验证控件的值,以确定控件的作用是计算被验证控件的值,以确定该值是否处于指定的最大和最小值(范围)之间。该值是否处于指定的最大和最小值(范围)之间。使用使用 RangeValidatorRangeValidator 控件可以检查用户的输入是否在指定的范围控件可以检查用户的输入是否在指定的范围之间,可以检查由数字对、字母对和日期对限定的范围,范围边界之间,可以检查由数字对、字母对和日期对限定的范围,范围边界(最大值和最小值)用常数表示。(最大值和最小值)用常数表示。 例6-10

Page 103: asp.net 网站建设ppt课件

6.3 6.3 数据验证控件数据验证控件6.3.5 6.3.5 正则表达式验证控件正则表达式验证控件(( RegularExpressionValidatorRegularExpressionValidator)) RegularExpressionValidatorRegularExpressionValidator 控件用于计算输入控件的值以控件用于计算输入控件的值以确定该值是否与某个正则表达式所定义的模式相匹配。确定该值是否与某个正则表达式所定义的模式相匹配。 在使用在使用 RegularExpressionValidatorRegularExpressionValidator 控件时应注意以下几个控件时应注意以下几个问题:问题: 1) 1) 如果输入控件的值为空,则不调用任何验证函数且可以通如果输入控件的值为空,则不调用任何验证函数且可以通过验证,这通常需要使用必须项验证控件的配合,以避免用户跳过过验证,这通常需要使用必须项验证控件的配合,以避免用户跳过某项的输入。某项的输入。 2) 2) 除非浏览器不支持客户端验证,或禁用了客户端验证,否除非浏览器不支持客户端验证,或禁用了客户端验证,否则客户端验证和服务器端验证都要被执行。客户端的正则表达式验则客户端验证和服务器端验证都要被执行。客户端的正则表达式验证语法与服务器端略有不同。在客户端使用的是证语法与服务器端略有不同。在客户端使用的是 JScriptJScript 正则表达正则表达式语法,在服务器端使用的是式语法,在服务器端使用的是 RegexRegex语法。由于语法。由于 JScriptJScript 正则表达正则表达式语法是式语法是 RegexRegex语法的子集,故最好使用语法的子集,故最好使用 JScriptJScript ,以便使客户端,以便使客户端和服务器端得到相同的结果。和服务器端得到相同的结果。

Page 104: asp.net 网站建设ppt课件

6.3 6.3 数据验证控件数据验证控件6.3.6 6.3.6 自定义验证控件自定义验证控件 (CustomValidator)(CustomValidator) CustomValidatorCustomValidator 控件用于计算输入控件的值,以确定它是否控件用于计算输入控件的值,以确定它是否通过自定义的验证逻辑。例如,可以通过自定义的验证逻辑来创建通过自定义的验证逻辑。例如,可以通过自定义的验证逻辑来创建CustomValidatorCustomValidator 控件,以控制用户输入的数据不能包含汉字。控件,以控制用户输入的数据不能包含汉字。

例6-11

Page 105: asp.net 网站建设ppt课件

6.3 6.3 数据验证控件数据验证控件6.3.7 6.3.7 验证摘要控件(验证摘要控件( ValidatorSummaryValidatorSummary)) 若页面中存在有很多各类验证控件,则可能出现大量提示信若页面中存在有很多各类验证控件,则可能出现大量提示信息占用较多页面的情况,这对息占用较多页面的情况,这对 WebWeb 页面的美观性十分不利。页面的美观性十分不利。 VS 2005VS 2005 提供的提供的 ValidatorSummaryValidatorSummary控件可以将页面中所有验控件可以将页面中所有验证控件的提示信息集中起来,在指定区域或以一个弹出信息框的形证控件的提示信息集中起来,在指定区域或以一个弹出信息框的形式显示给用户。式显示给用户。 ValidatorSummaryValidatorSummary控件为页面中每个验证控件显示的错误信控件为页面中每个验证控件显示的错误信息,是由每个验证控件的息,是由每个验证控件的 ErrorMessageErrorMessage 属性确定。若某验证控件属性确定。若某验证控件没有设置没有设置 ErrorMessageErrorMessage 属性,则在属性,则在 ValidatorSummaryValidatorSummary控件中不显控件中不显示该控件的错误信息。示该控件的错误信息。 ValidatorSummaryValidatorSummary控件必须与其他验证控件一起使用,可分控件必须与其他验证控件一起使用,可分别将各验证控件的别将各验证控件的 DisplayDisplay 属性设置为“属性设置为“ None”None” ,而通过,而通过 ValidaValidatorSummarytorSummary控件收集所有验证错误,并在指定的网页区域中或以控件收集所有验证错误,并在指定的网页区域中或以信息框的形式显示给用户。信息框的形式显示给用户。

Page 106: asp.net 网站建设ppt课件

6.4 6.4 用户自定义控件用户自定义控件6.4.1 6.4.1 用户自定义控件概述用户自定义控件概述

使用使用 WebWeb 用户控件可根据程序的需要方便地定义控件,且在用户控件可根据程序的需要方便地定义控件,且在设计用户控件时所使用的编程技术与设计设计用户控件时所使用的编程技术与设计 WebWeb 页面的技术完全相同,页面的技术完全相同,为了确保用户控件不能作为一个独立的为了确保用户控件不能作为一个独立的 WebWeb 窗体来使用,用户控件窗体来使用,用户控件文件名以“文件名以“ .ascx”.ascx” 为扩展名进行标识。为扩展名进行标识。 在用户控件上可以使用标准在用户控件上可以使用标准 WebWeb 窗体上相同的窗体上相同的 HTMLHTML控件和控件和 WeWebb 服务器控件。例如,希望创建一个网站导航栏用户控件,则可将服务器控件。例如,希望创建一个网站导航栏用户控件,则可将若干若干 ImageButtonImageButton 控件通过控件通过 HTMLHTML 表格进行布局,并创建这些表格进行布局,并创建这些 ImagImageButtoneButton 的事件处理程序即可。的事件处理程序即可。用户控件页与用户控件页与 WebWeb 窗体页主要有以下两点区别:窗体页主要有以下两点区别:1) 1) 用户控件页只能以用户控件页只能以 .ascx.ascx为扩展名;为扩展名;2) 2) 在用户控件文件中不能包含在用户控件文件中不能包含 <html><html>、、 <body><body>、、 <from><from> 元素,元素,这些元素应位于宿主页(用户控件所在的这些元素应位于宿主页(用户控件所在的 WebWeb 窗体页)中。窗体页)中。

Page 107: asp.net 网站建设ppt课件

6.4 6.4 用户自定义控件用户自定义控件6.4.2 6.4.2 创建用户控件创建用户控件

Page 108: asp.net 网站建设ppt课件

6.4 6.4 用户自定义控件用户自定义控件6.4.3 6.4.3 在设计视图中添加用户控件在设计视图中添加用户控件

用户控件的界面和事件处理程序编写完毕后,还必须将其放置用户控件的界面和事件处理程序编写完毕后,还必须将其放置在一个在一个 WebWeb 窗体页中才能使用。在设计视图中打开希望添加用户控窗体页中才能使用。在设计视图中打开希望添加用户控件的件的 WebWeb 窗体页面,注意一定要将页面切换到“设计”视图。窗体页面,注意一定要将页面切换到“设计”视图。 在解决方案资源管理器中将设计完毕的用户控件直接拖动到在解决方案资源管理器中将设计完毕的用户控件直接拖动到页面适当的位置。窗体设计器能自动向页面适当的位置。窗体设计器能自动向 WebWeb 页面添加页面添加 @Register@Register 页页面指示符,从此开始用户控件就成为了面指示符,从此开始用户控件就成为了 WebWeb 窗体的一个组成部分。窗体的一个组成部分。此外,当用户控件被添加到此外,当用户控件被添加到 WebWeb 窗体中后,该控件的公共属性、事窗体中后,该控件的公共属性、事件和方法也将向件和方法也将向 WebWeb 窗体公开,并可以通过编程的方式来使用。窗体公开,并可以通过编程的方式来使用。

例6-13

Page 109: asp.net 网站建设ppt课件

6.4 6.4 用户自定义控件用户自定义控件6.4.4 6.4.4 程序运行时动态添加用户控件程序运行时动态添加用户控件 用户控件也可以在程序运行时通过代码动态地加载,这样就用户控件也可以在程序运行时通过代码动态地加载,这样就能根据实际需要向页面中添加不同的用户控件,或通过循环向页面能根据实际需要向页面中添加不同的用户控件,或通过循环向页面中添加若干个相同的用户控件。中添加若干个相同的用户控件。 在实际应用中,通常需要在主在实际应用中,通常需要在主 WebWeb 页面中添加一个容器控件页面中添加一个容器控件 PPlaceHolderlaceHolder ,作为用户自定义控件的“占位”控件。在程序运行,作为用户自定义控件的“占位”控件。在程序运行时通过代码创建一个用户控件的实例,而后将用户控件添加到容器时通过代码创建一个用户控件的实例,而后将用户控件添加到容器控件中。例如:控件中。例如:protected void Page_Load(object sender, EventArgs e)protected void Page_Load(object sender, EventArgs e){{ Control head = LoadControl(“header.ascx”);Control head = LoadControl(“header.ascx”); PlaceHolder1.Controls.Add(head);PlaceHolder1.Controls.Add(head);}}

Page 110: asp.net 网站建设ppt课件

6.4 6.4 用户自定义控件用户自定义控件6.4.5 6.4.5 公开构成控件的属性公开构成控件的属性 组成用户控件的控件称为“构成控件”。这些控件通常被声组成用户控件的控件称为“构成控件”。这些控件通常被声明为私有的,因此开发人员不能访问它们。如果想要使将来的用户明为私有的,因此开发人员不能访问它们。如果想要使将来的用户可以使用这些控件的属性,则必须将其公开。通过创建用户控件中可以使用这些控件的属性,则必须将其公开。通过创建用户控件中的自定义属性,并使用该属性的的自定义属性,并使用该属性的 GetGet 和和 SetSet 访问器,影响构成控件访问器,影响构成控件的私有属性,就可以使构成控件的属性得以公开。的私有属性,就可以使构成控件的属性得以公开。 公开构成控件属性需要进行以下公开构成控件属性需要进行以下 33 个操作。个操作。 1) 1) 创建用户控件的公共属性。创建用户控件的公共属性。 2) 2) 在此属性的在此属性的 getget 部分,编写用于检索要公开的属性值的代部分,编写用于检索要公开的属性值的代码。码。 3) 3) 在此属性的在此属性的 setset 部分,编写用于将此属性的值传递给构成部分,编写用于将此属性的值传递给构成控件的公开属性的代码。控件的公开属性的代码。

Page 111: asp.net 网站建设ppt课件

6.4 6.4 用户自定义控件用户自定义控件6.4.5 6.4.5 公开构成控件的属性公开构成控件的属性 组成用户控件的控件称为“构成控件”。这些控件通常被声组成用户控件的控件称为“构成控件”。这些控件通常被声明为私有的,因此开发人员不能访问它们。如果想要使将来的用户明为私有的,因此开发人员不能访问它们。如果想要使将来的用户可以使用这些控件的属性,则必须将其公开。通过创建用户控件中可以使用这些控件的属性,则必须将其公开。通过创建用户控件中的自定义属性,并使用该属性的的自定义属性,并使用该属性的 GetGet 和和 SetSet 访问器,影响构成控件访问器,影响构成控件的私有属性,就可以使构成控件的属性得以公开。的私有属性,就可以使构成控件的属性得以公开。 公开构成控件属性需要进行以下公开构成控件属性需要进行以下 33 个操作。个操作。 1) 1) 创建用户控件的公共属性。创建用户控件的公共属性。 2) 2) 在此属性的在此属性的 getget 部分,编写用于检索要公开的属性值的代部分,编写用于检索要公开的属性值的代码。码。 3) 3) 在此属性的在此属性的 setset 部分,编写用于将此属性的值传递给构成部分,编写用于将此属性的值传递给构成控件的公开属性的代码。控件的公开属性的代码。

Page 112: asp.net 网站建设ppt课件

第第 77 章 章 ASP.NETASP.NET 内置对象内置对象本章讲述的主要内容本章讲述的主要内容7.1 7.1 类与对象概述类与对象概述 7.8 Session7.8 Session 对象对象7.2 7.2 类的字段与属性类的字段与属性 7.9 Application7.9 Application 对象对象7.3 ASP.NET7.3 ASP.NET 对象概述对象概述7.4 Page7.4 Page 对象对象7.5 Response7.5 Response 对象对象7.6 Request7.6 Request 对象对象7.7 Server7.7 Server 对象对象

Page 113: asp.net 网站建设ppt课件

7.1 7.1 类与对象概述类与对象概述

7.1.1 7.1.1 类和对象的概念类和对象的概念

现实生活中的类是人们对客观对象不断认识而产生的抽象现实生活中的类是人们对客观对象不断认识而产生的抽象的概念,而对象则是现实生活中的一个个实体。例如,人们在现的概念,而对象则是现实生活中的一个个实体。例如,人们在现实生活中接触了大量的汽车、摩托车、自行车等实体,从而产生实生活中接触了大量的汽车、摩托车、自行车等实体,从而产生了交通工具的概念,交通工具就是一个类,而现实生活中的具体了交通工具的概念,交通工具就是一个类,而现实生活中的具体的汽车、摩托车、自行车等,则是该类的对象。的汽车、摩托车、自行车等,则是该类的对象。 可以把类比作一种蓝图,而对象则是根据蓝图所创建的实可以把类比作一种蓝图,而对象则是根据蓝图所创建的实例,可以把类比作生产模具,而对象则是由这种模具产生的产品例,可以把类比作生产模具,而对象则是由这种模具产生的产品(实例)。所以人们又把对象叫做类的实例。类是对事物的定义,(实例)。所以人们又把对象叫做类的实例。类是对事物的定义,而对象则是该事物本身。而对象则是该事物本身。

Page 114: asp.net 网站建设ppt课件

7.1 7.1 类与对象概述类与对象概述

7.1.2 7.1.2 类与对象的本质类与对象的本质

对象通过类进行声明,由于类本质上是一种数据类型,所对象通过类进行声明,由于类本质上是一种数据类型,所以用类声明对象的方法与用基本数据类型声明对象的方法基本相以用类声明对象的方法与用基本数据类型声明对象的方法基本相同。事实上,在同。事实上,在 VS 2005VS 2005 中像中像 intint 、、 floatfloat 等基本数据类型也是等基本数据类型也是特殊的类。那么,用基本数据类型可以声明变量,用类类型也可特殊的类。那么,用基本数据类型可以声明变量,用类类型也可以声明变量,只不过用类数据类型声明的变量叫类的对象或类的以声明变量,只不过用类数据类型声明的变量叫类的对象或类的实例。用同一个类可以声明无数个该类的对象,这些对象具有相实例。用同一个类可以声明无数个该类的对象,这些对象具有相同的数据,相同的数据操作方法,所不同的仅仅是数据的具体值。同的数据,相同的数据操作方法,所不同的仅仅是数据的具体值。正如只要是人,就具有人所具备的共同特点,如身高、体型等,正如只要是人,就具有人所具备的共同特点,如身高、体型等,不同的仅仅是高矮胖瘦而已。不同的仅仅是高矮胖瘦而已。

Page 115: asp.net 网站建设ppt课件

7.1 7.1 类与对象概述类与对象概述

7.1.3 7.1.3 类成员类成员

在类的定义中,包含有各种类成员,概括起来类的成员有在类的定义中,包含有各种类成员,概括起来类的成员有两种:存储数据的成员与操作数据的成员。存储数据的成员叫两种:存储数据的成员与操作数据的成员。存储数据的成员叫“字段”,操作数据成员又有很多种,如属性、方法、构造函数“字段”,操作数据成员又有很多种,如属性、方法、构造函数和析构函数等。和析构函数等。

Page 116: asp.net 网站建设ppt课件

7.2 7.2 类的字段与属性类的字段与属性

7.2.1 7.2.1 定义一个类定义一个类 在类定义中需要使用关键字在类定义中需要使用关键字 classclass ,其简单的定义格式为:,其简单的定义格式为: class class 类名 类名 {{ 类体类体 }} “ “ 类名”是一个合法的类名”是一个合法的 C#C# 标识符,表示数据类型(类类标识符,表示数据类型(类类型)名称,“类体”以一对大括号开始和结束,在一对大括号后型)名称,“类体”以一对大括号开始和结束,在一对大括号后面可以跟一个分号,也可以省略分号。类的所有成员均在类体内面可以跟一个分号,也可以省略分号。类的所有成员均在类体内声明。声明。

Page 117: asp.net 网站建设ppt课件

7.2 7.2 类的字段与属性类的字段与属性

7.2.1 7.2.1 定义一个类定义一个类 在类定义中需要使用关键字在类定义中需要使用关键字 classclass ,其简单的定义格式为:,其简单的定义格式为: class class 类名 类名 {{ 类体类体 }} “ “ 类名”是一个合法的类名”是一个合法的 C#C# 标识符,表示数据类型(类类标识符,表示数据类型(类类型)名称,“类体”以一对大括号开始和结束,在一对大括号后型)名称,“类体”以一对大括号开始和结束,在一对大括号后面可以跟一个分号,也可以省略分号。类的所有成员均在类体内面可以跟一个分号,也可以省略分号。类的所有成员均在类体内声明。声明。 1. 1. 声明字段声明字段 2. 2. 声明属性声明属性 3. 3. 访问控制访问控制

Page 118: asp.net 网站建设ppt课件

7.2 7.2 类的字段与属性类的字段与属性

7.2.2 7.2.2 声明与使用对象声明与使用对象 定义类之后,可以用定义的类声明对象,声明对象后可以定义类之后,可以用定义的类声明对象,声明对象后可以访问对象成员。每一个类对象均具有该类定义中的所有成员,正访问对象成员。每一个类对象均具有该类定义中的所有成员,正如每一个整型变量均可以表示同样的数值范围一样。如每一个整型变量均可以表示同样的数值范围一样。 1. 1. 声明对象声明对象 声明对象的格式与声明基本数据类型的格式相同,其语法声明对象的格式与声明基本数据类型的格式相同,其语法格式为:格式为: 类名 对象名类名 对象名 ;;

Page 119: asp.net 网站建设ppt课件

7.2 7.2 类的字段与属性类的字段与属性

7.2.2 7.2.2 声明与使用对象声明与使用对象 2. 2. 访问对象访问对象 访问对象实质是访问对象成员,对对象变量成员的访问使访问对象实质是访问对象成员,对对象变量成员的访问使用“用“ .”.” 运算符。例如:运算符。例如: cubiod1.Length = 5;cubiod1.Length = 5; cubiod1.Width = 3;cubiod1.Width = 3; cubiod1.High = 2;cubiod1.High = 2; 上面的代码通过属性为对象上面的代码通过属性为对象 cubiod1cubiod1 的字段赋值。在实际应的字段赋值。在实际应用中也可以使用对象变量为另一对象变量整体赋值。用中也可以使用对象变量为另一对象变量整体赋值。

Page 120: asp.net 网站建设ppt课件

7.3 ASP.NET7.3 ASP.NET对象概述对象概述

ASP.NETASP.NET 的早期版本的早期版本 ASPASP 中就包含有中就包含有 PagePage 、、 ResponseResponse 、、 ReRequestquest 等对象。而在等对象。而在 ASP.NET 2.0ASP.NET 2.0 中,这些对象仍然存在,使用中,这些对象仍然存在,使用的方法也大致相同。不同的是这些对象改由的方法也大致相同。不同的是这些对象改由 .NET Framework.NET Framework 中中封装好的类来实现,并且由于这些对象是在封装好的类来实现,并且由于这些对象是在 ASP.NETASP.NET 页面初始化页面初始化请求时自动创建的,所以能在程序中任何地方直接调用,而无需请求时自动创建的,所以能在程序中任何地方直接调用,而无需对类进行实例化操作。对类进行实例化操作。

Page 121: asp.net 网站建设ppt课件

7.4 Page7.4 Page对象对象7.4.1 Page7.4.1 Page对象的属性对象的属性

Page 122: asp.net 网站建设ppt课件

7.4 Page7.4 Page对象对象

7.4.2 Page7.4.2 Page 对象的常用方法对象的常用方法

Page 123: asp.net 网站建设ppt课件

7.4 Page7.4 Page对象对象

7.4.3 Page7.4.3 Page 对象的常用事件对象的常用事件

Page 124: asp.net 网站建设ppt课件

7.4 Page7.4 Page对象对象

7.4.3 Page7.4.3 Page 对象的常用事件对象的常用事件

例7-1

Page 125: asp.net 网站建设ppt课件

7.5 Response7.5 Response对象对象

7.5.1 Response7.5.1 Response 对象的常用属性对象的常用属性

Page 126: asp.net 网站建设ppt课件

7.5 Response7.5 Response对象对象

7.5.2 Response7.5.2 Response 对象的常用方法对象的常用方法

Page 127: asp.net 网站建设ppt课件

7.5 Response7.5 Response对象对象

7.5.3 7.5.3 使用使用 ResponseResponse 对象对象 1. 1. 使用使用 WriteWrite 方法方法 使用使用 ResponseResponse 对象的对象的 WriteWrite 方法可以将信息写入方法可以将信息写入 HTMLHTML 输出内输出内容流。容流。 WriteWrite 方法的语法格式如下:方法的语法格式如下: Response.Write(string)Response.Write(string) ;; 2. 2. 使用使用 WriteFileWriteFile 方法方法 例7-2

Page 128: asp.net 网站建设ppt课件

7.6 Request7.6 Request对象对象7.6.1 Request7.6.1 Request对象的常用属性对象的常用属性

Page 129: asp.net 网站建设ppt课件

7.6 Request7.6 Request对象对象

7.6.2 Request7.6.2 Request 对象的常用方法对象的常用方法 RequestRequest 对象的常用方法有两个:对象的常用方法有两个: 1) MapPath(VirtualPath)1) MapPath(VirtualPath) :该方法将当前请求的:该方法将当前请求的 URLURL中的中的虚拟路径虚拟路径 VirtualPathVirtualPath映射到服务器上的物理路径。参数映射到服务器上的物理路径。参数 VirtuaVirtualPathlPath 用于指定当前请求的虚拟路径(可以是绝对路径,也可以用于指定当前请求的虚拟路径(可以是绝对路径,也可以是相对路径)。返回值为与是相对路径)。返回值为与 VirtualPathVirtualPath 对应的服务器端物理路对应的服务器端物理路径。径。 2) SaveAs(filename, includeHeaders)2) SaveAs(filename, includeHeaders) :该方法将客户端:该方法将客户端的的 HTTPHTTP请求保存到磁盘。参数请求保存到磁盘。参数 filenamefilename 用于指定文件在服务器用于指定文件在服务器上保存的位置;布尔型参数上保存的位置;布尔型参数 includeHeardersincludeHearders 用于指示是否同时用于指示是否同时保存保存 HTTPHTTP头。头。

Page 130: asp.net 网站建设ppt课件

7.6 Request7.6 Request对象对象7.6.3 7.6.3 使用使用 RequestRequest对象对象 1. 1. 使用使用 UserHostAddressUserHostAddress属性属性

2. 2. 使用使用 QueryStringQueryString 属性属性 3. 3. 使用使用 BrowserBrowser 属性属性 4. 4. 使用使用 FormForm 窗体变量集合窗体变量集合

Page 131: asp.net 网站建设ppt课件

7.7 Server7.7 Server对象对象7.7.1 Server7.7.1 Server对象的常用属性对象的常用属性

ServerServer 对象的常用属性有:对象的常用属性有: 1) MachineName1) MachineName 属性:该属性用于获取服务器计算机的名属性:该属性用于获取服务器计算机的名称。称。 2) ScriptTimeout2) ScriptTimeout 属性:该属性用于获取或设置请求超时属性:该属性用于获取或设置请求超时的时间(秒)。的时间(秒)。

Page 132: asp.net 网站建设ppt课件

7.7 Server7.7 Server对象对象7.7.2 Server7.7.2 Server对象的常用方法对象的常用方法

Page 133: asp.net 网站建设ppt课件

7.8 Session7.8 Session对象对象7.8.1 Session7.8.1 Session的工作原理的工作原理

当用户请求一个当用户请求一个 ASP.NETASP.NET 页面时,系统将自动创建一个页面时,系统将自动创建一个 SessiSessionon (会话),退出应用程序或关闭服务器时该会话撤销。系统(会话),退出应用程序或关闭服务器时该会话撤销。系统在创建会话时将为其分配一个长长的字符串(在创建会话时将为其分配一个长长的字符串( SessionIDSessionID )标识,)标识,以实现对会话进行管理和跟踪。该字符串中只包含以实现对会话进行管理和跟踪。该字符串中只包含 URLURL中所允许中所允许的的 ASCIIASCII 字符。字符。 SessionIDSessionID 具有的随机性和惟一性保证了会话不具有的随机性和惟一性保证了会话不会冲突,也不会被怀有恶意的人利用新会冲突,也不会被怀有恶意的人利用新 SessionIDSessionID 推算出现有会推算出现有会话的话的 SessionIDSessionID 。。

Page 134: asp.net 网站建设ppt课件

7.8 Session7.8 Session对象对象7.8.2 Session7.8.2 Session对象的常用属性及方法对象的常用属性及方法

SessionSession 对象的常用属性对象的常用属性

Page 135: asp.net 网站建设ppt课件

7.8 Session7.8 Session对象对象7.8.2 Session7.8.2 Session对象的常用属性及方法对象的常用属性及方法

SessionSession 对象的常用方法对象的常用方法

Page 136: asp.net 网站建设ppt课件

7.8 Session7.8 Session对象对象7.8.2 Session7.8.2 Session对象的常用属性及方法对象的常用属性及方法

SessionSession 对象的事件对象的事件 SessionSession 对象有以下两个事件:对象有以下两个事件: 1) Start1) Start 事件:在创建会话时发生。事件:在创建会话时发生。 2) End2) End 事件:在会话结束时发生。需要说明的是,当用户在客事件:在会话结束时发生。需要说明的是,当用户在客户端直接关闭浏览器退出户端直接关闭浏览器退出 WebWeb 应用程序时,并不会触发应用程序时,并不会触发 Session_EnSession_Endd 事件,因为关闭浏览器的行为是一种典型的客户端行为,是不会事件,因为关闭浏览器的行为是一种典型的客户端行为,是不会被通知到服务器端的。被通知到服务器端的。 Session_EndSession_End 事件只有在服务器重新启动、事件只有在服务器重新启动、用户调用了用户调用了 Session_Abandon()Session_Abandon() 方法或未执行任何操作达到了方法或未执行任何操作达到了 SessSession.Timeoution.Timeout 设置的值(超时)时才会被触发。设置的值(超时)时才会被触发。

Page 137: asp.net 网站建设ppt课件

7.8 Session7.8 Session对象对象7.8.3 7.8.3 向向 SessionSession 对象中存入数据对象中存入数据 向向 SessionSession对象中存入数据的方法十分简单,下面的语句使用对象中存入数据的方法十分简单,下面的语句使用户单击按钮时将户单击按钮时将 33个字符串分别存入个字符串分别存入 22个个 SessionSession对象和对象和 11个个ApplicationApplication对象中。对象中。

protected void Button1_Click(object sender, protected void Button1_Click(object sender, EventArgs e)EventArgs e)

{{

Session["myval1"] = "Session["myval1"] = "这是这是 SessionSession传递的数据传递的数据 1";1";

string strVal2 = "string strVal2 = "这是这是 SessionSession传递的数据传递的数据 2";2";

Session["myval2"] = strVal2;Session["myval2"] = strVal2;

}}

Page 138: asp.net 网站建设ppt课件

7.8 Session7.8 Session对象对象7.8.4 7.8.4 从从 SessionSession 对象中取出数据对象中取出数据 下面的语句表示了当目标页面装入时如何从下面的语句表示了当目标页面装入时如何从 SessionSession 对象中取出对象中取出数据的方法。数据的方法。protected void Page_Load(object sender, EventArgs e)protected void Page_Load(object sender, EventArgs e){{ Label1.Text = (string)(Session["myval1"]);Label1.Text = (string)(Session["myval1"]); Label2.Text = (string)(Session["myval2"]);Label2.Text = (string)(Session["myval2"]);}}

Page 139: asp.net 网站建设ppt课件

7.9 Application7.9 Application对象对象7.9.1 Application7.9.1 Application对象和对象和 SessionSession对象的区别对象的区别

ApplicationApplication 对象和对象和 SessionSession 对象都可在服务器端保存数据或对对象都可在服务器端保存数据或对象,使用方法和常用属性、事件、方法也基本相同。但象,使用方法和常用属性、事件、方法也基本相同。但 ApplicatioApplicationn 对象中保存的信息是为所有来访的客户端浏览器共享的,而对象中保存的信息是为所有来访的客户端浏览器共享的,而 SessSessionion 对象保存的数据则是仅为特定的来访者使用的。对象保存的数据则是仅为特定的来访者使用的。 例如,在河南的例如,在河南的 AA 用户和在河北的用户和在河北的 BB 用户同时访问某一服务器,用户同时访问某一服务器,若若 AA修改了修改了 ApplicationApplication 对象中存放的信息,对象中存放的信息, BB 用户在刷新页面后用户在刷新页面后就会看到修改后的内容;但若就会看到修改后的内容;但若 AA修改了修改了 SessionSession 对象中存放的数据,对象中存放的数据,BB 用户是感觉不到的。此时只有用户是感觉不到的。此时只有 AA 可以看到和使用这些数据。也就可以看到和使用这些数据。也就是说是说 SessionSession 对象中存放的是专用信息。对象中存放的是专用信息。

Page 140: asp.net 网站建设ppt课件

7.9 Application7.9 Application对象对象7.9.2 Application7.9.2 Application对象的常用属性、方法和事件对象的常用属性、方法和事件

1.1. Application Application对象的常用属性和方法对象的常用属性和方法

由于由于 ApplicationApplication对象中存放的信息是共有的,有可能发生对象中存放的信息是共有的,有可能发生在同一时间内多个用户同时操作同一在同一时间内多个用户同时操作同一 ApplicationApplication对象的情况,对象的情况,为了避免此类问题导致的出错。为了避免此类问题导致的出错。 ApplicationApplication对象增加了对象增加了Lock()Lock()方法和方法和 UnLock()UnLock()两个方法,用于在使用两个方法,用于在使用 setset方法更改方法更改ApplicationApplication对象值时将其锁定,在更改完毕后再解除锁定。对象值时将其锁定,在更改完毕后再解除锁定。

2. Application2. Application事件的常用事件事件的常用事件

ApplicationApplication对象的常用事件有如下两个:对象的常用事件有如下两个:

1) Start1) Start事件:该事件在应用程序启动时被触发。事件:该事件在应用程序启动时被触发。

2) End2) End事件:事件: Application_EndApplication_End事件在应用程序结束时被事件在应用程序结束时被触发,即触发,即 WebWeb服务器关闭或重新启动时被触发。服务器关闭或重新启动时被触发。

Page 141: asp.net 网站建设ppt课件

7.9 Application7.9 Application对象对象7.9.3 Application7.9.3 Application 对象中的数据存取对象中的数据存取 1. 1. 向向 ApplicationApplication对象写入数据对象写入数据

在向在向 ApplicationApplication对象中保存数据时可使用如下所示的语法对象中保存数据时可使用如下所示的语法格式:格式:

Application["Application["对象名对象名 "] = "] = 对象值对象值 ;; 或:或: Application.Add("Application.Add("对象名对象名 ", ", 值值 ););

2. 2. 修改修改 ApplicationApplication对象中的数据对象中的数据

修改已存在修改已存在 ApplicationApplication对象中的数据,需要使用对象中的数据,需要使用 SetSet方方法并配合法并配合 Lock()Lock()和和 UnLock()UnLock()方法方法。。

Page 142: asp.net 网站建设ppt课件

7.9 Application7.9 Application对象对象7.9.3 Application7.9.3 Application 对象中的数据存取对象中的数据存取 3. 3. 读取读取 ApplicationApplication对象中的数据对象中的数据

读取读取 ApplicationApplication对象中数据的方法如下所示:对象中数据的方法如下所示:

string user;string user;

user = Application("username").ToString();user = Application("username").ToString();

注意:注意: Application("Application("对象名对象名 ")")的返回值是一个的返回值是一个 ObjectObject类型的数据,操作时应注意数据类型的转换。类型的数据,操作时应注意数据类型的转换。

例7-11

Page 143: asp.net 网站建设ppt课件

第第 88 章 设计数据库应用网站章 设计数据库应用网站本章讲述的主要内容本章讲述的主要内容8.1 8.1 数据库基础知识数据库基础知识8.2 8.2 使用数据库系统使用数据库系统8.3 SQL8.3 SQL 查询基础查询基础8.4 ADO.NET8.4 ADO.NET 简介简介8.5 8.5 使用数据控件访问数据库使用数据控件访问数据库8.6 8.6 使用使用 ADO.NETADO.NET对象对象

Page 144: asp.net 网站建设ppt课件

8.1 8.1 数据库基础知识数据库基础知识

8.1.1 8.1.1 有关数据库的概念有关数据库的概念

1. 1. 数据库数据库 2. 2. 数据库管理系统数据库管理系统 3. 3. 数据库应用程序数据库应用程序 4. 4. 数据库系统数据库系统

Page 145: asp.net 网站建设ppt课件

88.1 .1 数据库基础知识数据库基础知识

88.1.2 .1.2 关系数据库关系数据库

关系型数据库是根据表、记录和字段之间的关系进行数据组织关系型数据库是根据表、记录和字段之间的关系进行数据组织和访问的一种数据库,它通过若干个表(和访问的一种数据库,它通过若干个表( TableTable )来存储数据,并通)来存储数据,并通过关系(过关系( RelationRelation )将这些表联系在一起。)将这些表联系在一起。 近几年来,关系型数据库已成为数据库设计事实上的标准,这不近几年来,关系型数据库已成为数据库设计事实上的标准,这不仅因为关系模型本省具有强大的功能,而且还由于它提供了称为结构仅因为关系模型本省具有强大的功能,而且还由于它提供了称为结构化查询语言化查询语言 Structure Query LanguageStructure Query Language (( SQLSQL )的标准接口,该)的标准接口,该接口允许以一致的和可以理解的方法来一起使用多种数据库工具和产接口允许以一致的和可以理解的方法来一起使用多种数据库工具和产品。品。 在一个关系型数据库中可以包含若干张表,每张表又由若干记录在一个关系型数据库中可以包含若干张表,每张表又由若干记录组成,记录由若干字段组成。表与表之间通过关系连接。组成,记录由若干字段组成。表与表之间通过关系连接。

Page 146: asp.net 网站建设ppt课件

88.1 .1 数据库基础知识数据库基础知识

88.1.2 .1.2 关系数据库关系数据库

1. 1. 关系型数据库的分类关系型数据库的分类 关系型数据库一般可分为两类,一类是桌面数据库,如关系型数据库一般可分为两类,一类是桌面数据库,如 AccAccessess 、、 ParadoxParadox 、、 FoxProFoxPro 和和 dBasedBase 等。另一类是客户等。另一类是客户 // 服务服务器数据库,如器数据库,如 SQL ServerSQL Server 、、 OracleOracle 、、 SybaseSybase 等。等。 2. 2. 表、记录和字段表、记录和字段 表(表( TableTable )是一种数据库对象,由若干条描述客观对象)是一种数据库对象,由若干条描述客观对象多个特征的记录(多个特征的记录( RecordRecord )也称为行()也称为行( RowRow )组成。表中每)组成。表中每一列(一列( ColumnColumn )表示客观对象的同一特征点,也称为字段()表示客观对象的同一特征点,也称为字段( FFieldield )。见表)。见表 8-18-1 和表和表 8-28-2 。。

Page 147: asp.net 网站建设ppt课件

88.1 .1 数据库基础知识数据库基础知识

88.1.2 .1.2 关系数据库关系数据库

3. 3. 关键字关键字 关键字是表中某个或多个字段,可以是唯一的,也可以是关键字是表中某个或多个字段,可以是唯一的,也可以是非唯一的。唯一关键字可以指定为主键,用来唯一标识一条记录。非唯一的。唯一关键字可以指定为主键,用来唯一标识一条记录。 4. 4. 索引索引 为了更快地访问数据,大多数数据库都使用关键字对表进为了更快地访问数据,大多数数据库都使用关键字对表进行索引。也就是按关键字对数据库进行排序,并建立一张索引表,行索引。也就是按关键字对数据库进行排序,并建立一张索引表,每个索引输入项指向该记录在数据库中的行。每个索引输入项指向该记录在数据库中的行。 5. 5. 关系关系 数据库中可以包含多张表,表与表之间可以用不同的方式数据库中可以包含多张表,表与表之间可以用不同的方式相互关联。这样做可以充分利用数据库中现有数据,减少数据的相互关联。这样做可以充分利用数据库中现有数据,减少数据的冗余。冗余。

Page 148: asp.net 网站建设ppt课件

8.2 8.2 使用数据库系统使用数据库系统

8.2.1 Microsoft Access8.2.1 Microsoft Access AccessAccess 数据库管理系统是数据库管理系统是 Microsoft OfficeMicrosoft Office 的一个组件,是的一个组件,是最常用的本地数据库之一。在最常用的本地数据库之一。在 C#C# 中可以方便地使用数据库对中可以方便地使用数据库对象,操作象,操作 AccessAccess 数据库。数据库。

1. 1. 创建数据库创建数据库 2. 2. 创建数据表创建数据表

Page 149: asp.net 网站建设ppt课件

8.2 8.2 使用数据库系统使用数据库系统

8.2.2 Microsoft SQL Server8.2.2 Microsoft SQL Server 前面介绍的前面介绍的 AccessAccess 数据库属于桌面数据库,主要在本地(本数据库属于桌面数据库,主要在本地(本计算机)运行。在本章中将主要介绍另一类数据库的使用,计算机)运行。在本章中将主要介绍另一类数据库的使用,即客户机/服务器(即客户机/服务器( ClientClient// ServerServer )数据库,如)数据库,如 SQL SerSQL Serverver 、、 OracleOracle 和和 SybaseSybase 数据库等。通过使用这种数据库系统,数据库等。通过使用这种数据库系统,用户可以方便地访问远程数据信息,而且这种数据库系统的用户可以方便地访问远程数据信息,而且这种数据库系统的多用户性使得信息共享成为现实。本节将以安装在多用户性使得信息共享成为现实。本节将以安装在 Windows Windows 2000 Server2000 Server 中的中的 SQL Server 2000SQL Server 2000企业版数据库管理系统为企业版数据库管理系统为背景介绍其使用方法。背景介绍其使用方法。 在在 SQL Server 2000SQL Server 2000 的企业管理器中用户可以十分方便地创的企业管理器中用户可以十分方便地创建数据库,创建数据库包括有创建数据库结构、创建表、创建数据库,创建数据库包括有创建数据库结构、创建表、创建相应的视图及存储过程等项工作。建相应的视图及存储过程等项工作。

Page 150: asp.net 网站建设ppt课件

8.2 8.2 使用数据库系统使用数据库系统

8.2.2 Microsoft SQL Server8.2.2 Microsoft SQL Server 1. 1. 创建创建 SQL ServerSQL Server 数据库数据库 2. 2. 在在 SQL ServerSQL Server 中创建表中创建表 3. 3. 使用使用 SQL ServerSQL Server 客户端工具客户端工具

Page 151: asp.net 网站建设ppt课件

88..33 SQL SQL查询基础查询基础

SQLSQL 是是 Structured Query LanguageStructured Query Language (结构化查询语言)的(结构化查询语言)的缩写。表缩写。表 8-48-4 中列举了常用的中列举了常用的 SQLSQL语句。语句。表表 8-4 SQL8-4 SQL的主要语句及说明的主要语句及说明

Page 152: asp.net 网站建设ppt课件

88..33 SQL SQL查询基础查询基础

8.3.1 8.3.1 查询语句查询语句 SelectSelect

SELECTSELECT 语句主要用于从数据库中返回需要的数据集,其语法格语句主要用于从数据库中返回需要的数据集,其语法格式为:式为:

SELECT select_listSELECT select_list

[INTO new_table_name][INTO new_table_name]

FROM table_listFROM table_list

[WHERE search_conditions][WHERE search_conditions]

[GROUP BY group_by_list][GROUP BY group_by_list]

[HAVING search_conditions][HAVING search_conditions]

[ORDER BY order_list [ASC|DESC]][ORDER BY order_list [ASC|DESC]]

Page 153: asp.net 网站建设ppt课件

88..33 SQL SQL查询基础查询基础

8.3.2 8.3.2 插入记录语句插入记录语句 InsertInsert

使用使用 InsertInsert语句可以向表中插入一条记录,该语句的语法格式语句可以向表中插入一条记录,该语句的语法格式为:为:

INSERT INTO INSERT INTO 表名称表名称 ((字段名字段名 ) VALUE() VALUE(字段值字段值 ))8.3.3 8.3.3 修改记录语句修改记录语句 UpdateUpdate使用使用 UpdateUpdate 语句可更新(修改)表中的数据,该语句的语法格式语句可更新(修改)表中的数据,该语句的语法格式为:为:UPDATE UPDATE 表名称 表名称 SET SET 字段名字段名 == 值 值 WHERE WHERE 条件条件8.3.4 8.3.4 删除记录语句删除记录语句 DeleteDelete使用使用 DELETEDELETE 语句可以删除数据表中指定行,该语句的语法格式为:语句可以删除数据表中指定行,该语句的语法格式为:DELETE FROM DELETE FROM 表名称 表名称 WHERE WHERE 条件条件

Page 154: asp.net 网站建设ppt课件

8.4 ADO.NET8.4 ADO.NET简介简介8.4.1 8.4.1 数据库通用接口数据库通用接口

美国微软公司提供的数据库通用接口程序,经过了美国微软公司提供的数据库通用接口程序,经过了 ODBC→OLEODBC→OLEDB→ADO→ADO.NETDB→ADO→ADO.NET 几个发展阶段。几个发展阶段。 1. ODBC1. ODBC通用数据库接口通用数据库接口

ODBC(Open Database ConnectivityODBC(Open Database Connectivity,开放数据库互,开放数据库互联联 ))

2. ADO2. ADO通用数据库接口通用数据库接口

ADOADO(( Active Data ObjectActive Data Object,动态数据对象),动态数据对象)

3. ADO.NET3. ADO.NET概述概述

在在 .NET.NET框架的框架的 System.DataSystem.Data命名空间及其子空间中有一命名空间及其子空间中有一些类,这些类被统称为些类,这些类被统称为 ADO.NETADO.NET。使用。使用 ADO.NETADO.NET可以方便地从可以方便地从Microsoft AccessMicrosoft Access、、 Microsoft SQL ServerMicrosoft SQL Server或其他数据库或其他数据库中检索、处理数据,并能更新数据库中的数据表。中检索、处理数据,并能更新数据库中的数据表。

Page 155: asp.net 网站建设ppt课件

8.4 ADO.NET8.4 ADO.NET简介简介8.4.2 ADO.NET8.4.2 ADO.NET的数据模型的数据模型

ADO.NETADO.NET 采用了层次管理的结构模型,各部分之间的逻辑关系采用了层次管理的结构模型,各部分之间的逻辑关系如图如图 8-188-18所示。所示。

Page 156: asp.net 网站建设ppt课件

8.4 ADO.NET8.4 ADO.NET简介简介8.4.3 8.4.3 数据源控件简介数据源控件简介

数据源控件的类型主要有以下几种。数据源控件的类型主要有以下几种。 1. AccessDataSource1. AccessDataSource AccessDataSourceAccessDataSource 数据源控件是专门为连接数据源控件是专门为连接 Microsoft AccesMicrosoft Accesss 数据库而设计的。数据库而设计的。 2. SqlDataSource2. SqlDataSource SqlDataSourceSqlDataSource 数据源控件是专门为连接数据源控件是专门为连接 Microsoft SQL ServMicrosoft SQL Serverer 数据库而设计的。数据库而设计的。 3. ObjectDataSource3. ObjectDataSource 4. XmlDataSource4. XmlDataSource 5. SiteMapDataSource5. SiteMapDataSource

Page 157: asp.net 网站建设ppt课件

8.5 8.5 使用数据控件访问数据库使用数据控件访问数据库8.5.1 8.5.1 使用使用 GridViewGridView数据控件数据控件

GridViewGridView 控件用于配合数据源控件实现对数据库进行浏览、编控件用于配合数据源控件实现对数据库进行浏览、编辑、删除等操作。数据源控件主要包括用于连接辑、删除等操作。数据源控件主要包括用于连接 AccessAccess 数据库数据库的的 AccessDataSourceAccessDataSource 和用于连接和用于连接 SQL ServerSQL Server 数据库的数据库的 SqlDataSqlDataSourceSource 。。1. 1. 添加数据源控件添加数据源控件

2. 2. 添加添加 GridViewGridView 控件控件3. 3. 设置设置 GridViewGridView 控件的属性控件的属性

Page 158: asp.net 网站建设ppt课件

8.5 8.5 使用数据控件访问数据库使用数据控件访问数据库

8.5.2 8.5.2 使用使用 FormViewFormView数据控件数据控件

FormViewFormView 控件与前面介绍过的控件与前面介绍过的 GridViewGridView 控件相似,也是用于控件相似,也是用于浏览或操作数据库的数据控件。它与浏览或操作数据库的数据控件。它与 GridViewGridView 相比主要的不同在相比主要的不同在于显示在于显示在 FormViewFormView 中的数据记录是分页的,即每页只显示一条记中的数据记录是分页的,即每页只显示一条记录。录。

Page 159: asp.net 网站建设ppt课件

8.5 8.5 使用数据控件访问数据库使用数据控件访问数据库

8.5.3 8.5.3 使用使用 RepeaterRepeater控件控件

RepeaterRepeater 控件是一个数据绑定列表控件(数据浏览控件),它控件是一个数据绑定列表控件(数据浏览控件),它允许通过为列表中显示的每一项重复指定的模板来自定义数据允许通过为列表中显示的每一项重复指定的模板来自定义数据显示布局。显示布局。 RepeaterRepeater 控件是一个基本模板数据绑定列表,它并控件是一个基本模板数据绑定列表,它并没有内置的布局或样式,因此必须在这个控件的模板内显式声没有内置的布局或样式,因此必须在这个控件的模板内显式声明所有的明所有的 HTMLHTML布局标记、格式设置及样式标记等。也正因为此,布局标记、格式设置及样式标记等。也正因为此,RepeaterRepeater 控件具有更好的灵活性,但该控件没有内置的选择和控件具有更好的灵活性,但该控件没有内置的选择和编辑功能。编辑功能。1.1. RepeaterRepeater控件的模板控件的模板

2. 2. 使用使用 RepeaterRepeater控件控件

例8-2

Page 160: asp.net 网站建设ppt课件

8.5 8.5 使用数据控件访问数据库使用数据控件访问数据库

8.5.4 8.5.4 使用使用 DetailsViewDetailsView控件控件

DetailsViewDetailsView 控件顾名思义是用于查看细节信息的控件,其作控件顾名思义是用于查看细节信息的控件,其作用主要是根据用户在父表中项的选择,在用主要是根据用户在父表中项的选择,在 DetailViewDetailView 控件中显示控件中显示子表的信息。子表的信息。 1. 1. 使用使用 DetailsViewDetailsView控件查看子表信息控件查看子表信息

例8-3

2. 2. 使用使用 DetailsViewDetailsView 控件操作控件操作 SQL ServerSQL Server 数据库数据库 例8-4

Page 161: asp.net 网站建设ppt课件

8.6 8.6 使用使用 ADO.NETADO.NET对象对象8.6.1 ADO.NET8.6.1 ADO.NET对象概述对象概述

在在 ADO.NETADO.NET 中数据集与数据提供器是两个非常重要,而又相互中数据集与数据提供器是两个非常重要,而又相互关联的核心组件。它们二者之间的关系如图关联的核心组件。它们二者之间的关系如图 8-458-45 所示。所示。

Page 162: asp.net 网站建设ppt课件

8.6 8.6 使用使用 ADO.NETADO.NET对象对象

8.6.2 8.6.2 数据集(数据集( DataSetDataSet )) 数据集相当于内存中暂时存放的数据库,它不仅可以包括多张数据集相当于内存中暂时存放的数据库,它不仅可以包括多张数据表,还可以包括数据表之间的关系和约束。允许将不同类型的数据表,还可以包括数据表之间的关系和约束。允许将不同类型的数据表复制到同一个数据集中,甚至还允许数据表与数据表复制到同一个数据集中,甚至还允许数据表与 XMLXML文档组合文档组合到一起协同操作。创建数据集对象的语法格式为:到一起协同操作。创建数据集对象的语法格式为:

DataSet DataSet 对象名 对象名 = new DataSet();= new DataSet();或:或:DataSet DataSet 对象名 对象名 = new DataSet("= new DataSet(" 表名表名 ")")

Page 163: asp.net 网站建设ppt课件

8.6 8.6 使用使用 ADO.NETADO.NET对象对象

8.6.3 8.6.3 数据表(数据表( DataTableDataTable )) 数据表是用来存放数据的。一个数据集中可能包括多张数据表,数据表是用来存放数据的。一个数据集中可能包括多张数据表,每张数据表又可包括多个行和列。数据表的创建有两种方式:每张数据表又可包括多个行和列。数据表的创建有两种方式: 1) 1) 将数据夹在到数据集时,系统将自动创建一些数据表对象。将数据夹在到数据集时,系统将自动创建一些数据表对象。 2) 2) 以编程的方式创建以编程的方式创建 DataTableDataTable 对象,然后将该对象添加到对象,然后将该对象添加到数据集的数据集的 TablesTables 集合中。集合中。 提取数据集中数据表的语法格式为:提取数据集中数据表的语法格式为: DataTable DataTable 表对象名 表对象名 = = 数据集名数据集名 .. 数据表名;数据表名;

Page 164: asp.net 网站建设ppt课件

8.6 8.6 使用使用 ADO.NETADO.NET对象对象

8.6.4 8.6.4 数据行(数据行( DataRowDataRow )) 数据行是给定数据表中的一条记录(表中的一行),它可能代数据行是给定数据表中的一条记录(表中的一行),它可能代表一个学生、一位用户或一件商品的相关数据集合。表一个学生、一位用户或一件商品的相关数据集合。数据行对象的方法提供了对表中数据的操作(如,插入、删除、更数据行对象的方法提供了对表中数据的操作(如,插入、删除、更新或查看等)。提取数据表中数据行的语法格式为:新或查看等)。提取数据表中数据行的语法格式为: DataRow DataRow 数据行对象名 数据行对象名 = = 数据表对象名数据表对象名 .Rows[n];.Rows[n];

Page 165: asp.net 网站建设ppt课件

8.6 8.6 使用使用 ADO.NETADO.NET对象对象

8.6.5 8.6.5 数据列(数据列( DataColumnDataColumn )) 数据表中的数据列(也称为“字段”)表示了数据表的结构。数据表中的数据列(也称为“字段”)表示了数据表的结构。例如,可以用它确定列中的数据类型和大小,还可以对其属性进行例如,可以用它确定列中的数据类型和大小,还可以对其属性进行设置。例如,确定列中数据是否是只读的、是否是主键、是否允许设置。例如,确定列中数据是否是只读的、是否是主键、是否允许空值等。还可以让列在一个初始值的基础上按自定义步长值自动增空值等。还可以让列在一个初始值的基础上按自定义步长值自动增加。加。获取某列的值需要在数据行的基础上进行,其语法格式如下:获取某列的值需要在数据行的基础上进行,其语法格式如下: string dc = dr.Columns["string dc = dr.Columns["字段名字段名 "].ToString();"].ToString(); 或:或: string dc = dr.Column[index].ToString();string dc = dr.Column[index].ToString();

Page 166: asp.net 网站建设ppt课件

8.6 8.6 使用使用 ADO.NETADO.NET对象对象

8.6.6 8.6.6 数据关系(数据关系( DataRelationDataRelation )) 表之间的关系由相关的列定义。在关系型数据库中,关系是指表之间的关系由相关的列定义。在关系型数据库中,关系是指两个表之间外键约束的组合。为了将一张表与另一张表联系起来,两个表之间外键约束的组合。为了将一张表与另一张表联系起来,可以简单地创建一个可以简单地创建一个 DataRelationDataRelation ,它将指出表中的哪一列与另,它将指出表中的哪一列与另一表中的哪一列相关联。一表中的哪一列相关联。

Page 167: asp.net 网站建设ppt课件

8.6 8.6 使用使用 ADO.NETADO.NET对象对象

8.6.7 Connection8.6.7 Connection (连接)(连接) ConnectionConnection 类提供了对数据源连接的封装。类中包括连接方法类提供了对数据源连接的封装。类中包括连接方法及描述当前连接状态的属性。在及描述当前连接状态的属性。在 ConnectionConnection 类中最重要的属性是类中最重要的属性是 CConnectionStringonnectionString (连接字符串),该属性用来指定服务名称、数(连接字符串),该属性用来指定服务名称、数据源信息及其他登录信息。据源信息及其他登录信息。 ConnectionStringConnectionString 中有两个重要的重要的部分:字符串的内容中有两个重要的重要的部分:字符串的内容和数据提供器名称。和数据提供器名称。 字符串内容中包含有“字符串内容中包含有“ DataSource”DataSource” (数据源)、“(数据源)、“ InitiaInitial Catalog”l Catalog” (默认连接数据库)及用于描述用户身份的“(默认连接数据库)及用于描述用户身份的“ User IUser ID”D” 和“和“ Password”Password” 。。

例8-5

Page 168: asp.net 网站建设ppt课件

8.6 8.6 使用使用 ADO.NETADO.NET对象对象8.6.8 Command8.6.8 Command(命令)(命令)

CommandCommand 对象可以在数据源中执行对象可以在数据源中执行 SQLSQL语句或存储程序,并从语句或存储程序,并从数据源返回结果。数据源返回结果。 CommandCommand 对象常用的构造函数包括两个重要的参对象常用的构造函数包括两个重要的参数,一个是要执行的数,一个是要执行的 SQLSQL 语句,另一个是已建立的语句,另一个是已建立的 ConnectionConnection 对对象。象。 1. ExecuteNonQuery1. ExecuteNonQuery方法方法 该方法对该方法对 ConnectionConnection 对象建立的连接进行不返回任何行的查对象建立的连接进行不返回任何行的查询,如询,如 UpdeaeUpdeae (更新)、(更新)、 DeleteDelete (删除)和(删除)和 InsertInsert (插入),(插入),该方法返回一个整型(该方法返回一个整型( IntegerInteger )数据,表示受查询影响的行数。)数据,表示受查询影响的行数。 2. ExecuteReader2. ExecuteReader 方法方法 对对 ConnectionConnection 对象建立的连接执行一个对象建立的连接执行一个 CommandTextCommandText 属性中属性中定义的命令,返回一个仅向前的、只读的数据集定义的命令,返回一个仅向前的、只读的数据集 DataReaderDataReader 对象,对象,该对象连接到数据库的结果集上,允许行检索。该对象连接到数据库的结果集上,允许行检索。

Page 169: asp.net 网站建设ppt课件

8.6 8.6 使用使用 ADO.NETADO.NET对象对象8.6.8 Command8.6.8 Command(命令)(命令)

3. ExecuteScalar3. ExecuteScalar方法方法

该方法对该方法对 ConnectionConnection 对象建立的连接执行对象建立的连接执行 CommandTextCommandText 属性属性中定义的命令,但只返回结果集中的第中定义的命令,但只返回结果集中的第 11 行第行第 11 列的值。列的值。

Page 170: asp.net 网站建设ppt课件

8.6 8.6 使用使用 ADO.NETADO.NET对象对象8.6.9 DataAdapter8.6.9 DataAdapter (数据适配器)(数据适配器) 1. DataAdapter1. DataAdapter 对象常用属性及方法对象常用属性及方法 该对象包含有该对象包含有 SelectCommandSelectCommand (查询)、(查询)、 InsertCommandInsertCommand (插(插入)、入)、 UpdateCommandUpdateCommand (更新)和(更新)和 DelectCommandDelectCommand (删除)四个属(删除)四个属性,用来定义处理数据存储中数据的命令,并且每个命令都是对性,用来定义处理数据存储中数据的命令,并且每个命令都是对 CoCommandmmand 对象的一个引用,可以共享同一个数据源。对象的一个引用,可以共享同一个数据源。该对象常用的方法有以下几个。该对象常用的方法有以下几个。 1) Fill1) Fill 方法:该方法用来执行方法:该方法用来执行 SelectCommandSelectCommand ,用数据源的,用数据源的数据填充数据填充 DataSetDataSet 对象。对象。 2) FillSchema2) FillSchema 方法:该方法使用方法:该方法使用 SelectCommandSelectCommand 提取数据源提取数据源中表的架构,并根据相应的约束在中表的架构,并根据相应的约束在 DataSetDataSet 对象中创建一个空表。对象中创建一个空表。 3) Update3) Update 方法:该方法用来将方法:该方法用来将 DataSetDataSet 对象中更改的内容更对象中更改的内容更新到初始的数据库中。新到初始的数据库中。

Page 171: asp.net 网站建设ppt课件

8.6 8.6 使用使用 ADO.NETADO.NET对象对象8.6.9 DataAdapter8.6.9 DataAdapter (数据适配器)(数据适配器) 2. 2. 使用使用 DataAdapterDataAdapter对象浏览数据库对象浏览数据库

例8-9

Page 172: asp.net 网站建设ppt课件

8.6 8.6 使用使用 ADO.NETADO.NET对象对象8.6.9 DataAdapter8.6.9 DataAdapter (数据适配器)(数据适配器) 3. 3. 使用使用 DataAdapterDataAdapter 对象操作数据库对象操作数据库 SQLSQL语句可以通过以下两种方式传递给语句可以通过以下两种方式传递给 DataAdapterDataAdapter 对象:对象: 1) 1) 通过通过 DataAdapterDataAdapter 对象的构造函数执行对象的构造函数执行 SQLSQL语句。语句。 例如,下列语句在声明一个例如,下列语句在声明一个 DataAdapterDataAdapter 对象对象 dada 的同时,指的同时,指定定 dada 对象要执行对象要执行 strSQLstrSQL字符串变量表示的字符串变量表示的 SQLSQL语句,要使用语句,要使用 ConnConnectionection 对象对象 connconn 表示的数据库连接。表示的数据库连接。OleDbDataAdapter da = new OleDbDataAdapter(strSQL, conn);OleDbDataAdapter da = new OleDbDataAdapter(strSQL, conn); 2) 2) 通过通过 DataAdapterDataAdapter 对象的对象的 44 个常用属性执行个常用属性执行 SQLSQL语句。语句。 下面的例题说明了使用下面的例题说明了使用 DataAdapterDataAdapter 对象的对象的 44 个常用个常用 CommandCommand属性,执行属性,执行 SQLSQL语句操作数据库的方法。语句操作数据库的方法。 例8-10

Page 173: asp.net 网站建设ppt课件

8.6 8.6 使用使用 ADO.NETADO.NET对象对象8.6.10 DataReader8.6.10 DataReader(数据读取器)(数据读取器)

1. DataReader1. DataReader对象的常用属性及方法对象的常用属性及方法

OleDbDataReaderOleDbDataReader 和和 SqlDataReaderSqlDataReader 对象常用的属性和方法有对象常用的属性和方法有以下几个。以下几个。 1) FieldCount1) FieldCount 属性属性 2) Read()2) Read() 方法方法 3) GetValue()3) GetValue() 方法方法 4) GetValues()4) GetValues() 方法方法 5) NextResult()5) NextResult() 方法方法 6) Close()6) Close() 方法方法 2. 2. 使用使用 DataReaderDataReader 对象 对象 例8-11

Page 174: asp.net 网站建设ppt课件

8.6 8.6 使用使用 ADO.NETADO.NET对象对象8.6.11 DataView8.6.11 DataView(数据视图)(数据视图) DataViewDataView 表示用于排序、筛选、搜索、编辑和导航的表示用于排序、筛选、搜索、编辑和导航的 DataTablDataTablee 的,可绑定数据的自定义视图。使用的,可绑定数据的自定义视图。使用 DataViewDataView 可以获取表中具有可以获取表中具有不同排序顺序的数据,也可以按行状态或基于过滤器表达式来过滤不同排序顺序的数据,也可以按行状态或基于过滤器表达式来过滤数据,以声称数据,以声称 DataTableDataTable 中数据的子集。中数据的子集。 DataTableDataTable 也有一个也有一个 DefaDefaultViewultView 的属性,该属性返回表的默认的属性,该属性返回表的默认 DataViewDataView 。如果希望在表上。如果希望在表上创建自定义视图,只需在创建自定义视图,只需在 DefaultViewDefaultView 返回的返回的 DataViewDataView 上设置上设置 RoRowFilterwFilter (行过滤)即可。(行过滤)即可。 DataViewDataView 对象通过调用对象通过调用 DataViewDataView 类的类的构造函数来创建,其语法格式如下:构造函数来创建,其语法格式如下: DataView DataView 对象名 对象名 = new DataView();= new DataView(); 或:或: DataView DataView 对象名 对象名 = new DataView(table);= new DataView(table); 或:或:DataView DataView 对象名 对象名 = new DataView(table, rowfilter, sort, rowState);= new DataView(table, rowfilter, sort, rowState);

Page 175: asp.net 网站建设ppt课件

8.6 8.6 使用使用 ADO.NETADO.NET对象对象8.6.11 DataView8.6.11 DataView(数据视图)(数据视图)

1. DataView1. DataView 对象的常用属性对象的常用属性 2. DataView2. DataView 对象的常用方法对象的常用方法 3. 3. 使用使用 DataViewDataView 对象对象 例8-12

Page 176: asp.net 网站建设ppt课件

第第 99 章 创建和使用章 创建和使用 Web ServiceWeb Service

本章讲述的主要内容本章讲述的主要内容9.1 Web Service9.1 Web Service简介简介

9.2 9.2 创建创建 Web ServiceWeb Service9.3 9.3 在在 ASP.NETASP.NET应用程序中调用应用程序中调用 Web ServiceWeb Service

9.4 9.4 在在 WindowsWindows应用程序中调用应用程序中调用 Web ServiceWeb Service

Page 177: asp.net 网站建设ppt课件

9.1 Web Service9.1 Web Service简介简介9.1.1 9.1.1 了解了解Web ServiceWeb Service Web ServiceWeb Service由由 44个组成部分,分别是个组成部分,分别是 WebWeb服务(服务( Web Web ServiceService自身),服务的提供方(自身),服务的提供方( Service ProviderService Provider),),服务的请求方(服务的请求方( Service RequesterService Requester)和服务的注册机构)和服务的注册机构(( Service RegistryService Registry)。通常我们将服务的提供方、服务的)。通常我们将服务的提供方、服务的请求方和服务的注册机构称为请求方和服务的注册机构称为 Web ServiceWeb Service的三大角色。这三的三大角色。这三大角色及其行为共同构成了图大角色及其行为共同构成了图 9-19-1所示的所示的 Web ServiceWeb Service的体的体系结构。系结构。

Page 178: asp.net 网站建设ppt课件

9.1 Web Service9.1 Web Service简介简介

9.1.2 Web Service9.1.2 Web Service 的相关标准和规范的相关标准和规范 1. XML1. XML和和 XSDXSD

2. SOAP2. SOAP协议协议 3. WSDL3. WSDL协议协议 5. 5. 远程过程调用(远程过程调用( RPCRPC )与消息传递)与消息传递

Page 179: asp.net 网站建设ppt课件

9.2 9.2 创建创建 Web ServiceWeb Service

9.2.1 9.2.1 创建创建 Web ServiceWeb Service 项目项目 创建一个创建一个 Web ServiceWeb Service项目的方法与创建一个项目的方法与创建一个 ASP.NETASP.NET 网站网站的方法基本一致,可在的方法基本一致,可在 VS 2005“VS 2005“ 起始页”中单击创建“网站”,起始页”中单击创建“网站”,在图在图 9-29-2 所示的对话框中选择“所示的对话框中选择“ ASP.NETASP.NET 服务”模板,并填写站服务”模板,并填写站点文件的保存位置后单击【确定】按钮。点文件的保存位置后单击【确定】按钮。

Page 180: asp.net 网站建设ppt课件

9.2 9.2 创建创建 Web ServiceWeb Service

9.2.2 9.2.2 编写实现编写实现 Web ServiceWeb Service 功能的代码功能的代码9.2.3 9.2.3 测试测试 Web ServiceWeb Service

Page 181: asp.net 网站建设ppt课件

9.3 9.3 在在 ASP.NETASP.NET中调用中调用Web ServiceWeb Service9.3.1 9.3.1 添加添加WebWeb引用引用 在“解决方案资源管理器”窗口空白处单击鼠标右键,在在“解决方案资源管理器”窗口空白处单击鼠标右键,在弹出的快捷菜单中执行“添加弹出的快捷菜单中执行“添加 WebWeb引用”命令,在对话框引用”命令,在对话框 URLURL 栏栏中输入中输入 Web ServiceWeb Service 所在站点及文件名。所在站点及文件名。9.3.2 9.3.2 编写调用代码编写调用代码 WebReference.Service sv1 = new WebReference.Service();WebReference.Service sv1 = new WebReference.Service(); DataSet ds = new DataSet();DataSet ds = new DataSet(); ds = sv1.GetDataSet();ds = sv1.GetDataSet(); GridView1.Caption = "GridView1.Caption = "员 工 工 资 表员 工 工 资 表 ";"; GridView1.DataSource = ds;GridView1.DataSource = ds; GridView1.DataBind();GridView1.DataBind();

Page 182: asp.net 网站建设ppt课件

9.4 9.4 在在WindowsWindows中调用中调用Web ServiceWeb Service

9.4.1 9.4.1 创建能接收参数的创建能接收参数的 Web ServiceWeb Service 使用使用 Web ServiceWeb Service 不但可以读取数据库中的数据返回到客户端,不但可以读取数据库中的数据返回到客户端,也可以接收由客户端传递过来的数据进行某种计算或处理,最后也可以接收由客户端传递过来的数据进行某种计算或处理,最后将结果返回到客户端。将结果返回到客户端。9.4.2 9.4.2 创建调用创建调用 Web ServiceWeb Service 的的 WindowsWindows 程序程序

Page 183: asp.net 网站建设ppt课件

9.4 9.4 在在WindowsWindows中调用中调用Web ServiceWeb Service

9.4.1 9.4.1 创建能接收参数的创建能接收参数的 Web ServiceWeb Service 使用使用 Web ServiceWeb Service 不但可以读取数据库中的数据返回到客户端,不但可以读取数据库中的数据返回到客户端,也可以接收由客户端传递过来的数据进行某种计算或处理,最后也可以接收由客户端传递过来的数据进行某种计算或处理,最后将结果返回到客户端。将结果返回到客户端。9.4.2 9.4.2 创建调用创建调用 Web ServiceWeb Service 的的 WindowsWindows 程序程序

Page 184: asp.net 网站建设ppt课件

第第 1010 章 发布章 发布 ASP.NETASP.NET 网站网站本章讲述的主要内容本章讲述的主要内容10.1 10.1 在在 WebWeb服务器中配置服务器中配置 IISIIS

10.2 10.2 创建创建 FTPFTP 远程管理账号远程管理账号10.3 10.3 发布发布 ASP.NETASP.NET网站网站

10.4 10.4 使用使用 WebWeb安装项目部署应用程序安装项目部署应用程序

Page 185: asp.net 网站建设ppt课件

10.1 10.1 在在WebWeb服务器中配置服务器中配置 IISIIS

10.1.1 10.1.1 为站点准备一个为站点准备一个 IPIP 地址地址 任何一个站点能够被任何一个站点能够被 InternetInternet 或或 IntranetIntranet 中其他用户访问中其他用户访问的最基本前提是该站点拥有一个固定的的最基本前提是该站点拥有一个固定的 IPIP 地址或域名。如果在地址或域名。如果在服务器中存在多个站点,可能需要在一块网卡上创建多个服务器中存在多个站点,可能需要在一块网卡上创建多个 IPIP 地地址,址, Windows Server 2003Windows Server 2003 允许为同一块网卡设置多个允许为同一块网卡设置多个 IPIP 地址,地址,但设置数量过多将影响系统的稳定性。但设置数量过多将影响系统的稳定性。10.1.2 10.1.2 创建站点主目录创建站点主目录 每个每个 WebWeb 站点必须有一个“主目录”。该目录实际上是位于站点必须有一个“主目录”。该目录实际上是位于服务器上存放站点所有文件的文件夹,可以在服务器端通过服务器上存放站点所有文件的文件夹,可以在服务器端通过 WinWindowsdows 资源管理器创建该文件夹。但要求文件夹所处的驱动器最资源管理器创建该文件夹。但要求文件夹所处的驱动器最好是好是 NTFSNTFS 分区。“主目录”是分区。“主目录”是 WebWeb 站点的“根”目录,映射为站点的“根”目录,映射为站点的站点的 IPIP 或域名。当用户使用不带文件名的或域名。当用户使用不带文件名的 URLURL访问站点时,访问站点时,请求将自动指向该目录下的默认文档。请求将自动指向该目录下的默认文档。

Page 186: asp.net 网站建设ppt课件

10.1 10.1 在在WebWeb服务器中配置服务器中配置 IISIIS

10.1.3 10.1.3 配置配置 IISIIS 使用使用 IISIIS管理器创建管理器创建 WebWeb 站点可以通过两个途径实现:使用站点可以通过两个途径实现:使用“网站创建向导”或使用导入网站配置文件的方法。常用的是通“网站创建向导”或使用导入网站配置文件的方法。常用的是通过向导创建过向导创建 WebWeb 站点的方法。站点的方法。

Page 187: asp.net 网站建设ppt课件

10.2 10.2 创建创建 FTPFTP 远程管理账号远程管理账号

在在 IISIIS 中创建了发布中创建了发布 ASP.NETASP.NET 网站需要的站点后,还需要为网站需要的站点后,还需要为用户提供一个用于远程上传文件的用户提供一个用于远程上传文件的 FTPFTP 服务器账号。这就需要在服务器账号。这就需要在运行运行 IISIIS 服务的服务的 WebWeb 服务器中还应同时运行有一个服务器中还应同时运行有一个 FTPFTP 服务器,服务器,该服务器负责将不同用户上传的文件保存到不同的文件夹中,而该服务器负责将不同用户上传的文件保存到不同的文件夹中,而这个文件夹一般就是站点的主目录。目前使用较为广泛的是这个文件夹一般就是站点的主目录。目前使用较为广泛的是 SerServ-U FTPv-U FTP 服务器系统。服务器系统。

Page 188: asp.net 网站建设ppt课件

10.3 10.3 发布发布 ASP.NETASP.NET网站网站

10.3.1 10.3.1 使用使用 FTPFTP 方式发布网站方式发布网站

Page 189: asp.net 网站建设ppt课件

10.3 10.3 发布发布 ASP.NETASP.NET网站网站10.3.2 10.3.2 发布网站到本地文件夹发布网站到本地文件夹

Page 190: asp.net 网站建设ppt课件

10.4 10.4 使用使用WebWeb安装项目部署应用程安装项目部署应用程序序

10.4.1 10.4.1 创建与生成创建与生成WebWeb安装程序安装程序

所谓所谓 WebWeb 安装程序,类似于常用的安装程序,类似于常用的 WindowsWindows 安装程序。用户安装程序。用户可在服务器上运行安装包中的可在服务器上运行安装包中的 setup.exesetup.exe 文件启动安装向导,并文件启动安装向导,并在向导的指引下一步步地将在向导的指引下一步步地将 ASP.NET 2.0ASP.NET 2.0 网站发布到网站发布到 WebWeb 站点中。站点中。10.4.2 10.4.2 部署安装项目到部署安装项目到 WebWeb 服务器服务器 将前面生成的安装程序通过光盘、移动硬盘、将前面生成的安装程序通过光盘、移动硬盘、 UU盘或网络传送盘或网络传送到到 WebWeb 服务器中,双击安装包中服务器中,双击安装包中 setup.exesetup.exe 文件启动安装向导。文件启动安装向导。 安装过程与其他安装过程与其他 WindowsWindows 应用程序的安装过程十分相似,绝应用程序的安装过程十分相似,绝大多数步骤均可取系统提供的默认值,只是在出现图大多数步骤均可取系统提供的默认值,只是在出现图 10-2510-25 所示所示的“选择安装地址”对话框时,站点默认值为的“选择安装地址”对话框时,站点默认值为 IISIIS 的“默认的“默认 WebWeb站点”,一般是站点”,一般是 c:\intpub\wwwrootc:\intpub\wwwroot 处。虚拟目录为创建安装包处。虚拟目录为创建安装包时由时由 VirtualDirctoryVirtualDirctory属性决定的位置(如本例的属性决定的位置(如本例的 myweb_setumyweb_setupp )。)。