VisualBasic面向对象程序设计教程(第4版)

VisualBasic面向对象程序设计教程(第4版)"

作者:瞿中、刘冰、王桂林
ISBN:9787302192251
定价:¥79
字数:千字
页数:
出版时间:2009.03.01
开本:
版次:1-1
装帧:
出版社:清华大学出版社
简介

本书用通俗的语言从实用的角度出发,由浅入深地介绍了Visual Basic编程的相关内容,包括如何设计、实现以及测试结构良好、易于维护和可扩展的应用程序。本书重点讲述编程和解决问题的实践方法,着重介绍面向对象编程的原理和软件设计,对知识点溯本求源,力求给出合理的解释,做到言之有物。书中提供了丰富的典型示例,操作性强,便于读者学习与推广。每章都附有大量的习题,便于读者思考和复习。

本书从不同的角度给各类程序员提供帮助,适合已经完成初级课程的读者,旨在帮助他们逐步自行开发涉及数据库的中小型Windows和Web应用程序。本书既适合作为高等院校计算机专业或相关专业教材或教学参考书,也适合作为专业技术人员的参考书。 

前言

  

前    言

  

  本书适用于已经完成初级或者相关课程的读者,介绍了Visual Basic 2005编程的相关内容。在完成本书的学习和编程练习后,学生可以开发涉及数据库的中小型Windows和Web应用程序。

  优秀程序员必须结合理论与实践以适应不断变化的计算环境。本书涉及的内容不像专业参考书那样宽泛,而是着眼于编程和解决问题的实践方法。以下特色将有助于课堂教学。

* 循序渐进式学习方法,逐步深入介绍编程思想和概念。

* 根据各章主题给出的示例有助于学生积累实践经验。

* 每小节末尾均提供自测题。

* 通过编程提示为读者解决编程问题提供建议。

* 章末提供关键术语。

* 章末提供习题。

* 通过编程练习强化知识点。

* 由作者维护的配套网站含有书中所有范例程序和数据库。

第4版的变化

  第4版有了很多改进!我们将着重介绍面向对象编程原理和软件设计。多层应用程序模型(数据层、业务规则层和表示层)具有重要的影响,因为它是组件式编程。总的说来,第4版提供一种更高效的方法来介绍如何设计、实现和测试结构良好、易于维护和可扩展的应用程序。

  本书中的程序示例使用Visual Studio 2005编写。

附 带 资 料

  本书的主要亮点在于作者为教学提供高质量的支持,Addison-Wesley (http://www.aw-bc.com/)为本书提供优质资源,通过搜索书名Advanced Visual Basic 2005,采用本书的学生和老师可以获得以下资料。

* 各章PowerPoint课件。

* 范例程序。

* 本版新增内容列表。

  另外,教师还可以获得以下资料。

* 习题答案。

* 编程练习答案。

重点强调的技能

  如果希望熟练使用Visual Basic 2005,至少需要掌握以下基本技能。

* 面向对象的设计和编程。

* 创建组件(类库)。

* 三层应用程序模型。

* 使用关系型数据库的桌面应用程序。

* 使用关系型数据库的Web应用程序。

* 应用程序的设计和测试。

  为了实现这些基本目标,我们在书中列出了学习目标,并将它们划分为几大板块:面向对象的设计、面向对象的编程、用户界面、数据库以及Web编程。通过本书的阅读,读者可以拥有以下技能。

面向对象的设计

* 认识和理解基本的UML图示。

* 了解继承、组合和接口实现在设计上的差异。

* 了解多态在实现高效面向对象设计中所起的作用。

* 使用带有组合和继承关系的类来设计应用程序。

* 创建用例场景来描述详细的执行步骤。

* 使用采用组件的多层设计模型来设计应用程序。

面向对象的编程

* 了解反射和运行时类型标识的基本知识。

* 了解早期绑定和后期绑定,了解向上转型和向下转型。

* 通过多个catch块,抛出异常和重新抛出异常以及自定义异常类来实现异常的处理。

* 实现类构造函数,包含使用继承的类在内。

* 定义共享方法、字段和属性。

* 定义结构类型、枚举类型、类和嵌套类。

* 重载和覆盖类的方法。

* 通过Public、Private、Protected和Friend修饰符控制对成员的访问。

* 在派生类中定义和实现接口。

用户界面

* 确定常见的用户界面设计问题。

* 使用.Net错误处理控件和事件处理在用户界面层捕捉错误。

* 自定义Visual Basic 2005高级控件,例如ToolStrip、DataGridView、GridView、DataView、TreeView、Repeater和DataList。

数据库

* 设计包含多个表关系的关系型数据库。

* 显示相关数据库表的数据。

* 使用DataSet和DataTable更新数据库表的数据。

* 通过数据库连接实现多层应用设计中的数据层。

* 通过异常处理来处理常见的数据库异常。

* 创建SQL查询来更新数据库。

* 创建ADO.NET Command对象来执行数据库查询。

* 使用DataReader来读取数据库的数据。

* 充分利用ADO.NET数据库对象来编写应用程序。

* 创建和执行存储过程。

* 熟悉数据库约束和数据库安全。

Web编程

* 创建包含多个网页的ASP.NET应用程序。

* 在程序中使用所有标准的HTML控件和ASP.NET控件。

* 使用Web验证控件。

* 使用Web窗体的列表型控件,包括GridView、ListBox、DropDownList、RadioButtonList和CheckBoxList,并为这些控件编写事件处理程序。

* 在Web应用程序中上传文件以及发送电子邮件。

* 在ASP.NET程序中管理页面状态和会话状态。

* 实现自定义HTTP错误处理。

* 创建、删除和修改浏览器端的cookie。

* 在Web应用中使用数据绑定和数据组件。

* 使用基于模板的控件,例如DataList和Repeater。

* 配置GridView的高级选项并响应其事件。

* 在Web窗体中使用Command对象来更新数据库。

* 创建Web Service,返回值类型以及对象类型,也包括DataSet。

* 创建使用Web Service的Visual Basic应用程序。

学 习 计 划

  如果在学习Visual Basic的过程中强调Windows应用程序,推荐依次学习第1~7章,然后学习第8~11章。第12章(水晶报表)可以在学习第3章之后的任何时间学习。如果课程侧重于Web编程,可以依次学习第1、2、3、8、9和10章。下图描述了各章之间的关系。

各 章 介 绍

  第1章  类

  本章介绍Microsoft .NET Framework和最佳编程实践。着重讲解包括数据类型的基本概念,同时也包括了值类型的概念。剩下的篇幅讲解数据类型、类和面向对象的设计,最后提供一个程序设计和问题求解实例,该例模拟了一个银行自动取款机。

  第2章  用户界面设计

  本章首先介绍用户界面设计准则,展示了输入验证如何提高程序的健壮性。然后深入介绍一些高级的.NET控件,如ToolStrip、WebBrowser、SplitContainer、ListView和TreeView。本章对日期和时间的算法问题作了简单讨论,也对多文档界面(MDI)程序进行了粗略的介绍,这些对于学习后面的章节非常有用。

  第3章  使用SQL Server 数据库

  本章介绍SQL Server数据库的基本概念及其在Visual Basic中的用法。你将学会使用强大的Visual Studio工具来建立数据库的连接。本章接着介绍了SQL SELECT语句,同时展示了怎样创建查询来填充DataGridView以及其他可以进行数据绑定的控件。然后介绍如何对DataSet中的数据行进行查询、插入、删除和排序。最后介绍一个简短的用于管理Karate学校的小型数据库应用程序。

  第4章  深入类

  本章延续第1章面向对象的话题,继续深入讨论。介绍如何创建类库,这将为后续各章的学习打下基础。接下来去认识Object(对象)类,并且了解如何通过反射在运行时获得对象的信息。本章还介绍了接口概念以及如何通过接口来为对象分配不同的行为。同时,在整章中都会贯穿异常处理和继承的概念。

  第5章  ADO.NET数据库对象

  本章介绍了直接运用ADO.NET提供的对象来编程的灵活性。特别示范了如何通过Visual Studio的工具创建数据库、视图和存储过程。本章首先介绍一些重要的数据库设计的概念,如表关系和约束。学生将学会如何通过编程来创建数据表、数据库连接、数据适配器和数据集,为后续学习数据库组件做好准备,同时也将学会通过T-SQL查询语句来更新数据库。

  第6章  数据库组件

  本章着重讲述如何创建可重用的类库,同时展示这些类库如何有助于应用程序保持良好的扩展性和维护性,本章示例中将使用Northwind数据库,学生届时将学习如何创建数据相关组件、Command对象以及Northwind_Library组件。最后讨论示例组件的测试和调试。

  第7章  ProjectTrackAw案例

  本章将开发一个复杂的跟踪项目的应用程序。你将会看到用例的示例、需求的确定、数据库设计、类设计以及用户界面的设计。本章将说明如何实现数据层和业务层的组件,以及如何将设计的组件连接到用户界面。本章最后介绍测试概念和为示例程序制定测试                      计划。

  第8章  创建Web应用程序

  本章介绍如何通过Visual Basic来创建Web应用程序,学习Web应用程序与客户端进行通信的基本过程。同时,本章还介绍如何运用标准的Web服务器控件来创建ASP.NET应用程序,控件可用Visual studio的工具来设计。学生也将学习到如何在多个网页之间传递数据以及如何连接到SQL Server数据库。

  第9章  在Web窗体中编写代码

  本章将学习如何仅运用XHTML代码来创建Web 应用程序,用CSS创建可重用的样式,如何上传文件和发送电子邮件。同时也说明了客户端校验控件的使用,以及自定义错误处理。学生还会学习如何通过浏览器cookie和会话状态集合保存状态信息。最后本章要展示一个简单的Vacation Rentals Web应用程序。

  第10章  包含数据库对象的Web应用程序

  本章介绍在Web应用开发者中流行的一些技术。Master-Detail页供学生定义在其他所有网页上固定的头和尾的内容。学生也将通过列表类控件来学习数据绑定,学习如何通过增加按钮和列来自定义GridView控件。本章将用到第4章和第6章介绍的基于组件的编程的相关知识点。最后将学习怎样使用JavaScript编写客户端代码,怎样使用ASP.NET新提供的用户验证和Login(登录)控件。

  

第11章  Web Service

  本章将简要介绍比较流行的Web Service,简而言之,Web Service允许应用程序通过网络包括Internet来调用函数,Web Service是对本书重点强调的基于组件的编程方法的扩展。本章示例使用了数据库和第6章中创建的Northwind_Library组件。

  第12章  水晶报表

  本章介绍了水晶报表,它是.NET中一款知名的自定义报表工具。学生将学习如何使用Report Creation Wizard(报表创建向导)创建报表,如何使用Report Designer(报表设计器)修改报表。本章介绍如何将报表绑定到现有数据源,根据字段组合创建报表,为报表添加图表。本章介绍的报表可以应用在Windows和Web应用程序中。

  附录A  自测题答案

  附录A提供所有自测题的答案,学生可以通过每一章后面的自测题和答案来测试自己掌握的知识。

  附录B  高级应用

  本附录包含学生可能感兴趣的话题。展示如何计算TimeSpan对象,如何格式化日期和时间,如何使用ListView控件的高级特性。在面向对象方面,学习IComparer接口以及如何创建抽象类和运用多态性,展示了如何在自定义类中定义和引发事件。最后说明了Web应用程序中DataList控件的使用,以及如何定义模板来进行高级的格式化。

  

  

  

  

  

 

  

  

  

  

目录

前言

目    录

第1章  类 1

1.1  介绍Visual Studio 和 .NET 2

1.2  最佳编程实践 4

1.2.1  本书所用的术语 4

1.2.2  命名 5

1.2.3  编码规则 7

1.3  基本数据类型 10

1.3.1  值类型 11

1.3.2  引用类型 11

1.3.3  类型转换 13

1.3.4  .NET的Convert类 14

1.3.5  引用类型参数 16

1.3.6  对象的生命周期 16

1.3.7  命名空间 17

1.4  定义值类型 18

1.4.1  枚举类型 18

1.4.2  结构体 19

1.5  创建和使用类 21

1.5.1  向项目中添加类 21

1.5.2  属性 23

1.5.3  共享的数据成员和属性 25

1.5.4  重写ToString方法 26

1.6  构造函数 27

1.7  用类来设计程序 32

1.7.1  找出类 32

1.7.2  继承 33

1.7.3  多层架构应用 34

1.8  着眼于程序设计和问题的解决:

银行取款机应用程序 35

第2章  用户界面设计 55

2.1  用户界面设计准则 56

2.1.1  了解用户 56

2.1.2  窗体设计 57

2.1.3  将Microsoft Office当作

模板 58

2.2  输入校验 59

2.2.1  总原则 59

2.2.2  捕捉按键 60

2.2.3  通过StatusStrip控件

显示消息 62

2.2.4  ErrorProvider控件 63

2.3  日期和时间 68

2.3.1  DateTimePicker 控件 68

2.3.2  MonthCalendar控件 69

2.3.3  TimeSpan类 71

2.3.4  检查日期范围 71

2.4  ToolStrip 控件 76

2.5  WebBrowser和SplitContainer控件 82

2.5.1  WebBrowser控件 82

2.5.2  SplitContainer 控件 85

2.6  多文档界面(MDI) 87

2.7  ListView 控件 92

2.7.1  创建列表头 93

2.7.2  ListViewItem类 94

2.7.3  ListView使用技巧 96

2.8  TreeView 控件 99

2.8.1  TreeView属性 99

2.8.2  TreeNode属性 100

2.8.3  基本技巧 100

第3章  使用SQL Server数据库 119

3.1  数据库基础 120

3.1.1  主键 120

3.1.2  SQL Server数据

类型 120

3.1.3  设计数据库表 121

3.2  SQL SELECT语句 124

3.2.1  SELECT语句 124

3.2.2  通过ORDER BY排序 125

3.2.3  使用WHERE子句 126

3.3  使用DataGridView 128

3.4  选择DataSet中的数据行 138

3.4.1  SQL 138

3.4.2  修改数据源的查询语句 138

3.4.3  为DataGridView添加

SELECT语句 140

3.5  数据绑定控件 144

3.5.1  Visual Studio 复制数据库

文件 145

3.5.2  绑定单个字段到控件 147

3.5.3  Karate数据库 149

3.5.4  将数据源绑定到ListBox

和ComboBox 150

3.5.5  在DataSet表中插入行 153

3.5.6  使用DataSet循环 157

3.6  案例:Karate学校管理系统 159

3.6.1  设计准则 159

3.6.2  使用BindingSource 165

3.6.3  使用查询参数 167

3.6.4  SQL查询语句中通配符的

使用 168

第4章  深入类 187

4.1  类库(组件) 188

4.1.1  创建类库 188

4.1.2  在程序中使用类库 189

4.2  对象和反射 193

4.2.1  反射 193

4.2.2  System.Object类 194

4.2.3  值类型比较 194

4.2.4  覆盖Equals方法 195

4.3  接口 197

4.3.1  定义接口 197

4.3.2  实现接口 197

4.3.3  IComparable接口 199

4.4  异常处理 203

4.4.1  异常处理原则 203

4.4.2  Try…Catch…Finally语句 204

4.4.3  传递异常 211

4.4.4  在业务逻辑层处理异常 211

4.4.5  异常处理提示 212

4.5  继承 213

4.5.1  访问修饰符 213

4.5.2  创建派生类 213

4.5.3  继承构造函数 216

4.5.4  继承的属性和方法 217

4.5.5  覆盖和重载 218

4.5.6  高级话题:抽象类 222

4.5.7  高级话题:多态 222

4.5.8  高级话题:创建事件

处理程序 222

第5章  ADO.NET数据库对象 229

5.1  创建数据库 230

5.1.1  Database Explorer

(Server Explorer)窗口 230

5.1.2  创建数据库和数据表 231

5.2  关系数据库设计 235

5.2.1  pubs数据库中的数据表 235

5.2.2  表之间的关系 236

5.2.3  数据库约束 240

5.2.4  引用完整性约束 240

5.2.5  列检查约束 241

5.2.6  级联更新和删除 241

5.2.7  连接数据库表 244

5.3  视图和存储过程 249

5.3.1  数据库视图 249

5.3.2  存储过程 251

5.3.3  多参数的存储过程 253

5.4  DataTable(数据表) 255

5.4.1  DataTable对象 255

5.4.2  DataRow对象 256

5.4.3  DataColumn对象 256

5.4.4  读和写XML文件 257

5.4.5  格式化DataGridView列 258

5.4.6  强类型数据表 259

5.5  Connection、DataAdapter和

DataSet 264

5.5.1  Connection 264

5.5.2  DataAdapter 266

5.5.3  Database类的实例 271

5.6  使用SQL更新数据库 273

5.6.1  插入数据行 273

5.6.2  更新数据行 273

5.6.3  删除数据行 274

5.6.4  通过DataSet和TableAdapter

来执行查询 274

第6章  数据库组件 291

6.1  Northwind数据库 292

6.2  数据相关组件 293

6.2.1  三层应用模型 294

6.2.2  使用TableAdapter的

注意事项 302

6.3  Command 对象 303

6.3.1  My.Settings配置 303

6.3.2  创建和执行Command对象 304

6.3.3  执行命令 305

6.3.4  DataReader 306

6.3.5  执行带参数的查询 312

6.3.6  执行存储过程 314

6.4  创建Northwind_Library组件 315

6.4.1  通用的GetReader方法 315

6.4.2  通用的GetTable方法 316

6.4.3  构造SqlParameter对象 317

6.4.4  调用GetTable方法 318

6.5  组件测试 328

6.5.1  Debug对象 328

6.5.2  前置条件、后置条件和

断言 333

6.5.3  组件测试的其他内容 334

第7章  ProjectTrackAw案例 343

7.1  分析阶段 344

7.1.1  ProjectTrackAw项目的概述 344

7.1.2  用例 345

7.1.3  场景 347

7.1.4  需求规格说明书 348

7.2  数据库设计 349

7.2.1  表 349

7.2.2  视图 353

7.2.3  存储过程 354

7.3  组件类 356

7.3.1  数据层:ProjectTrackAw

组件 356

7.3.2  业务规则层 359

7.4  用户界面设计 362

7.5  组件实现 374

7.5.1  设置应用程序使其更灵活 374

7.5.2  建立ProjectTrackAw组件 374

7.5.3  ProjectTrackAw组件中的

业务规则层类 379

7.6  应用程序实现 391

7.7  测试应用程序 409

7.7.1  基于需求的测试 409

7.7.2  积极测试实例 410

7.7.3  消极测试实例 414

7.7.4  处理严重的错误 415

7.8  扩展ProjectTrackAw应用程序 417

第8章  创建Web应用程序 425

8.1  Web编程 426

8.1.1  超文本标记语言(HTML) 426

8.1.2  Web应用程序如何工作 427

8.1.3  控件类型 429

8.2  创建ASP.NET应用程序 429

8.2.1  网站类型 429

8.2.2  创建Web应用程序 430

8.3  Web服务器控件 439

8.3.1  如何处理Web控件 440

8.3.2  Web窗体中的事件

处理程序 443

8.3.3  例子:追踪Page_Load、

TextChanged和Click事件 444

8.3.4  HyperLink、ImageButton、

LinkButton和

RadioButtonList 446

8.3.5  ListBox控件 447

8.3.6  CheckBoxList控件 448

8.3.7  DropDownList控件 449

8.3.8  Calendar控件 449

8.3.9  Kayak Tour Scheduler 示例 452

8.4  设计Web窗体 453

8.5  包含多个网页的应用程序 460

8.5.1  在项目中添加一个新

Web窗体 460

8.5.2  在页面间切换 461

8.5.3  移到一个新网页 461

8.6  使用数据库 463

8.6.1  GridView控件 463

8.6.2  使用DetailsView控件

修改表的行 467

第9章  在Web窗体上编写代码 487

9.1  在源(XHTML)模式下工作 488

9.2  级联样式表 496

9.2.1 设置整个页的属性 497

9.2.2  定义样式类 500

9.2.3  CSS Menu Demo示例 501

9.3  自定义错误处理 503

9.4  上传文件和发送邮件 506

9.4.1  FileUpload控件属性 507

9.4.2  发送电子邮件 510

9.5  数据校验控件 516

9.5.1  服务器端和客户端 517

9.5.2  RequiredFieldValidator控件 517

9.5.3  RangeValidator控件 520

9.5.4  CompareValidator控件 521

9.5.5  RegularExpressionValidator

控件 522

9.5.6  CustomValidator 控件 525

9.6  状态管理 527

9.6.1  页级别的状态(ViewState) 528

9.6.2  Session State 531

9.7  聚焦问题解决方法:Vacation Rentals

应用程序 533

9.7.1  设计应用程序的Web窗体 534

9.7.2  DecimalRange结构 535

9.7.3  Rentallnfo类 536

9.7.4  Rental Request窗体 537

9.7.5  确认页面 539

9.8  浏览器cookie 540

9.8.1  例子 541

9.8.2  Cookie Example程序 541

第10章  包含数据库对象的

  Web应用程序 553

10.1  Master-Detail页 554

10.1.1  描述 554

10.1.2  母版页 555

10.1.3  内容页 556

10.2  数据绑定和ListControl 563

10.2.1  连接数据库 563

10.2.2  ListControl 564

10.2.3  例子:将ListBox控件绑定

到Northwind数据库的

Products表 565

10.2.4  DropDownList控件 567

10.2.5  CheckBoxList控件 567

10.2.6  RadioButtonList控件 569

10.2.7  DataList控件 569

10.3  GridView控件按钮 570

10.3.1  GridView控件 571

10.3.2  使用GridView属性来

选择行 573

10.4  基于组件的编程 578

10.4.1  将Windows应用程序

转换为Web应用程序 580

10.4.2  创建定制的GridView列 581

10.4.3  ProjectTrackAw的

Web实现 582

10.4.4  实现启动页面 586

10.4.5  All Projects页的实现 587

10.5  使用JavaScript 591

10.5.1  编写JavaScript 591

10.5.2  访问窗体域 592

10.5.3  定义JavaScript函数 593

10.5.4  调试JavaScript 597

10.6  使用Login控件进行用户

 身份验证 598

10.6.1  Login控件 599

10.6.2  CreatUserWizard 控件 600

10.6.3  ChangePassword控件 600

10.6.4  LoginStatus控件 601

10.6.5  PasswordRecovery控件 601

10.6.6  网站管理 603

第11章  Web Service 623

11.1  介绍 XML Web Service 624

11.1.1  示例:价格对比 624

11.1.2  在Visual Studio中创建一个XML Web Service 625

11.2  Northwind Web Service示例 627

11.2.1  从Web Service

返回对象 629

11.2.2  向同一解决方案中添加

第二个Web项目 632

11.2.3  在本机中定位

Web Service 632

11.2.4  添加数据集到

Web Service中 639

11.3  访问远程服务 641

第12章  水晶报表 649

12.1  介绍水晶报表 650

12.2  使用报表创建向导 653

12.3  使用报表设计器编辑报表 658

12.4  绑定到现有数据源 661

12.5  创建分组显示的报表 666

12.6  为报表添加图表 676

附录A  自测题答案 685

附录B  高级应用 695

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

 

  

  

  

  

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个