第一部分 Visual Basic.NET编程基础 3
第1章 Visual Basic.NET概述 3
1.1 软件开发技术 3
1.1.1 概述 3
1.1.2 计算模式 3
1.1.3 程序设计方法 6
1.1.4 软件产业与软件开发人员 7
1.2 Visual Studio.NET 9
1.2.1 Visual Basic.NET的新特性 9
1.2.2 安装 10
1.2.3 集成开发环境 10
1.3 第一个例程S01 01:Hello,World! 13
1.3.1 例程说明 13
1.3.2 创建项目 13
1.3.3 设计界面 14
1.3.4 添加代码 15
1.3.5 运行测试 15
1.3.6 例程分析 16
1.4 程序调试 16
1.4.1 错误类型 16
1.4.2 程序调试的一般过程 17
1.4.3 程序调试的其他问题 18
1.5 方法与技巧 19
1.5.1 提高Visual Studio.NET的运行性能 19
1.5.2 优化“解决方案资源管理器”窗口中的树目录 20
1.5.3 IDE智能设置 20
1.5.4 命名规则与方法 21
1.5.5 使用Spy++++查看窗口的样式和扩展样式 23
1.5.6 生成发行版本 24
1.6 小结 24
第2章 VisualBasic.NET语言 26
2.1 Visual Basic.NET和.NET框架 26
2.1.1 程序集 26
2.1.2 引用和引入语句 27
2.1.3 命名空间 28
2.1.4 特性 29
2.2 语句 33
2.2.1 注释语句 33
2.2.2 赋值语句 33
2.2.3 声明语句 33
2.2.4 可执行语句 34
2.3 编程元素 34
2.3.1 命名规则 34
2.3.2 寿命 35
2.3.3 作用域 35
2.3.4 可访问性 37
2.3.5 元素的引用 38
2.4 数据类型 39
2.4.1 声明数据类型 40
2.4.2 基本数据类型 40
2.4.3 复合数据类型 42
2.4.4 结构:自定义的数据类型 42
2.4.5 值类型和引用类型 43
2.4.6 类型转换 43
2.4.7 无类型编程 44
2.5 变量 44
2.5.1 对象变量 45
2.5.2 对象变量的声明 45
2.5.3 对象变量的赋值 46
2.5.4 对象变量的值 47
2.6 类和对象 48
2.6.1 对象成员 48
2.6.2 继承与包容 49
2.7 数组 49
2.7.1 使用数组 50
2.7.2 使用ReDim 50
2.7.3 数组对象与数组变量 50
2.7.4 数组的高级特性 50
2.7.5 数组的数组 50
2.7.6 使用集合代替数组 50
2.8 字符串 51
2.8.1 字符串操作 51
2.8.2 Nothing和字符串 51
2.9 常量 51
2.9.1 自定义常量 52
2.9.2 自定义常量的作用域 52
2.9.3 避免循环引用 52
2.9.4 常量的数据类型与直接量的数据类型 52
2.9.5 枚举 53
2.10 操作符 53
2.10.1 连接操作符 55
2.10.2 逻辑操作符 55
2.10.3 混合使用操作符 55
2.11 表达式 55
2.12 过程 55
2.12.1 作用域 56
2.12.2 参数列表的返回值 56
2.13 控制流 56
2.13.1 顺序结构 56
2.13.2 分支结构 57
2.13.3 循环结构 58
2.13.4 With...nd With语句 59
2.13.5 Exit语句 60
2.14 异常处理 60
2.14.1 结构异常处理方法 60
2.14.2 非结构异常处理 62
2.15 小结 64
第二部分 Visual Basic.NET通用编程技术 67
第3章 窗体和控件 67
3.1 窗体 67
3.1.1 概述 67
3.1.2 窗体的基本特性 67
3.2 控件 69
3.3 窗体和控件的关系 70
3.4 在窗体中使用控件 70
3.4.1 向窗体中添加控件 70
3.4.2 删除窗体中的控件 71
3.4.3 调整控件的大小和位置 71
3.4.4 设置可视控件的Tab顺序 73
3.4.5 控件的锁定和解锁 73
3.4.6 设置窗体中控件的属性 73
3.4.7 创建控件的事件处理过程 73
3.5 命令控件 73
3.5.1 Button控件 73
3.5.2 ToolBar控件 75
3.6 文本编辑控件 81
3.6.1 TextBox的插入点 81
3.6.2 例程S03 03 81
3.6.3 使用TextBox控件创建密码文本框 82
3.6.4 例程S03 04 83
3.7 文本显示控件 83
3.7.1 Label控件 83
3.7.2 例程S03 05 84
3.7.3 StatusBar控件 84
3.7.4 例程S03 06 85
3.8 列表控件 86
3.8.1 DomainUpDown控件和NumericUpDown控件 86
3.8.2 ListBox控件、ComboBox控件和CheckedListBox控件 86
3.8.3 ListView控件 87
3.8.4 TreeView控件 89
3.9 图形显示控件 92
3.9.1 设计时加载图片 92
3.9.2 在运行时修改图片的大小和位置 92
3.9.3 在运行时设置图片 93
3.10 图形存储控件 93
3.11 对话框控件 94
3.11.1 ColorDialog控件 94
3.11.2 FontDialog控件 95
3.11.3 OpenFileDialog控件 95
3.11.4 SaveFileDialog控件 95
3.11.5 PrintDialog控件 96
3.11.6 PrintPreviewDialog控件 96
3.11.7 PageSetupDialog控件 96
3.12 值的设置控件 97
3.12.1 CheckBox控件 97
3.12.2 CheckedListBox控件 98
3.12.3 RadioButton控件 99
3.12.4 TrackBar控件 100
3.13 数据设置控件 100
3.13.1 DateTimePicker控件 100
3.13.2 MonthCalendar控件 101
3.14 菜单控件 103
3.14.1 Menu控件 103
3.14.2 ContextMenu控件 104
3.15 分组控件 104
3.15.1 Panel控件 104
3.15.2 GroupBox控件 106
3.15.3 TabControl控件 106
3.16 方法与技巧 107
3.16.1 窗体、组件的使用原则 107
3.16.2 使用信息对话框 108
3.16.3 按钮功能提示 111
3.16.4 使用TextBox组件的IME属性 112
3.16.5 使用事件处理过程中的Sender参数 113
3.17 小结 113
第4章 菜单、工具栏和状态栏 114
4.1 菜单 114
4.1.1 主菜单 114
4.1.2 上下文菜单 118
4.2 状态栏 119
4.3 例程S04 01 120
4.4 小结 124
第5章 文件、目录和驱动器 125
5.1 文件对话框控件 125
5.1.1 OpenFileDialog控件 125
5.1.2 SaveFileDialog对话框 126
5.2 使用Visual Basic.NET访问文件 126
5.2.1 对文件的访问 127
5.2.2 驱动器和文件夹访问 129
5.2.3 通过FileStream类进行文件访问 131
5.2.4 通过BinaryReader和BinaryWriter类进行文件访问 131
5.2.5 通过StreamReader和StreamWriter类进行文件访问 132
5.3 使用Visual Basic运行时函数进行文件访问 132
5.3.1 文件访问类型、函数和语句 132
5.3.2 顺序文件访问 139
5.3.3 随机文件访问 141
5.3.4 二进制文件访问 143
5.3.5 数据访问函数 144
5.4 用FileSystemObject访问文件 144
5.4.1 FileSystemObject 144
5.4.2 Drive 145
5.4.3 Folder 146
5.4.4 File 146
5.4.5 TextStream 147
5.5 例程S05 01 147
5.6 例程S05 02 149
5.7 小结 149
第6章 图形、字体和打印 150
6.1 创建图形对象 150
6.1.1 创建Graphics对象 150
6.1.2 笔 151
6.1.3 画笔 152
6.1.4 颜色 153
6.2 绘制线条和形状 154
6.2.1 绘制线条或空心形状 154
6.2.2 绘制实心形状 155
6.3 绘制文本 155
6.4 显示图片文件 156
6.5 图片框控件 156
6.5.1 加载、清除图片 156
6.5.2 设置图片的大小或位置 157
6.6 字体 158
6.7 打印 158
6.7.1 例程S06_01 159
6.7.2 例程S06_02 159
6.8 小结 160
第三部分 Visual Basic.NET高级编程技术 163
第7章 报表 163
7.1 基本概念 163
7.2 创建报表 163
7.3 报表设计 166
7.3.1 规划报表内容 166
7.3.2 访问和添加数据 168
7.3.3 字段和文本对象 169
7.3.4 筛选数据 169
7.3.5 对数据进行分组、排序和总计 170
7.3.6 执行报表计算 172
7.3.7 改进报表外观 172
7.4 报表分发 174
7.4.1 查看报表 174
7.4.2 导出报表 175
7.4.3 打印报表 176
7.4.4 例程S07_01 176
7.5 小结 178
第8章 多线程编程 179
8.1 基本概念 179
8.2 创建和使用线程 180
8.2.1 启动和停止线程 180
8.2.2 线程优先级 180
8.2.3 前台线程与后台线程 180
8.3 线程状态 181
8.4 多线程过程的参数和返回值 181
8.4.1 为多线程过程提供参数 181
8.4.2 从多线程过程返回值 182
8.5 线程同步 183
8.5.1 SyncLock语句 183
8.5.2 等待线程完成 183
8.6 多线程处理窗体和控件 184
8.7 例程S08_01 184
8.8 小结 188
第9章 Win32 API编程 189
9.1 应用程序接口 189
9.1.1 API概念 189
9.1.2 API分类 189
9.2 使用Declare声明API 190
9.3 Windows API常数 191
9.4 例程S09_01 192
9.5 使用Win32 API 192
9.5.1 数据封送处理 193
9.5.2 使用DllImport的API调用 193
9.5.3 例程S09 02 193
9.6 小结 194
第10章 多媒体编程 195
10.1 概述 195
10.2 动画 195
10.2.1 文字动画 195
10.2.2 图像动画 196
10.3 多媒体控件 197
10.3.1 MediaPlayer 197
10.3.2 ActiveMovie 199
10.4 用API增强多媒体功能 199
10.5 小结 201
第11章 软件的安装与部署 202
11.1 基本概念 202
11.2 Microsoft Windows安装程序介绍 202
11.3 生成安装程序的简单示例 203
11.4 在部署中使用编辑器 204
11.4.1 文件系统编辑器 204
11.4.2 文件类型编辑器 209
11.4.3 部署中的注册表设置管理 210
11.4.4 部署中的用户界面管理 212
11.4.5 部署中的自定义操作管理 214
11.4.6 在部署中启动条件管理 215
11.5 小结 216
第四部分 数据库开发技术 219
第12章 关系数据库 219
12.1 数据库基本知识 219
12.1.1 为什么要使用数据库 219
12.1.2 数据库技术的发展 220
12.1.3 数据库的分类 221
12.1.4 现有的各种数据库 221
12.1.5 通常进行的数据库方面的应用和开发 222
12.1.6 关于本章的例程数据库 223
12.2 关系数据库 224
12.2.1 关系模型 224
12.2.2 表 225
12.2.3 记录 226
12.2.4 字段 226
12.2.5 数据类型 226
12.2.6 键 226
12.2.7 索引 227
12.2.8 关系和完整性 227
12.3 结构查询语言 228
12.3.1 SQL及其特点 229
12.3.2 数据查询 229
12.3.3 数据操作 233
12.3.4 数据定义 234
12.4 关系数据库的设计 235
12.4.1 设计数据库的基本规则 235
12.4.2 设计数据库时遵循的三个范式 236
12.4.3 实体—关系图(E-R图) 237
12.5 Access的使用 237
12.5.1 例程数据库的设计说明 238
12.5.2 创建数据库 238
12.5.3 在数据库中对表的添加、修改和删除 239
12.5.4 为表建立关系 240
12.5.5 对表的记录进行添加、修改和删除 241
12.5.6 在数据库中对查询的添加、修改和删除 242
12.5.7 为表添加、修改和删除索引 243
12.5.8 使用Access时的一些方法与技巧 243
12.6 小结 244
第13章 数据库应用系统的开发 245
13.1 数据库访问技术 245
13.1.1 ODBC 245
13.1.2 DAO 246
13.1.3 OLE DB 247
13.1.4 ADO 248
13.1.5 ADO.NET 248
13.2 通用数据访问 249
13.2.1 通用数据访问策略的提出 249
13.2.2 通用数据访问的结构和特点 250
13.2.3 选择合适的MDAC策略 253
13.3 微软数据访问组件 254
13.4 在Visual Studio.NET环境下管理数据库 255
13.4.1 服务器资源管理器 256
13.4.2 数据库项目 258
13.4.3 查询/视图设计器 259
13.4.4 数据库设计器 262
13.5 例程S13_01:第一次访问数据库 263
13.6 小结 266
第14章 ADO编程基础 267
14.1 ADO技术概述 267
14.2 ADO对象模型 267
14.2.1 ADO对象模型简介 268
14.2.2 ADO在数据访问中的作用 269
14.2.3 Connection对象和Errors集合 269
14.2.4 Command对象和Parameters集合 271
14.2.5 Recordset和Fields集合 273
14.3 RDS 276
14.3.1 远程数据访问的问题和解决方案 277
14.3.2 RDS编程模型 277
14.4 ADO MD 279
14.5 ADOX 281
14.6 例程:使用ADO访问数据库 281
14.7 小结 283
第15章 ADO深入编程技术 284
15.1 数据提供程序和连接字符串 284
15.1.1 数据提供程序 284
15.1.2 连接字符串 285
15.1.3 例程:连接数据库 287
15.2 检索数据 289
15.2.1 Connection对象 289
15.2.2 Command对象 290
15.2.3 Recordset对象 292
15.2.4 例程:检索数据 293
15.3 数据检查 298
15.3.1 Recordset在数据中的移动 298
15.3.2 Fields集合 301
15.3.3 Recordset的高级操作 304
15.3.4 例程:数据检查 307
15.4 数据编辑 313
15.4.1 数据编辑的相关内容 313
15.4.2 编辑已有数据 314
15.4.3 添加数据 314
15.4.4 删除数据 315
15.4.5 使用SQL语句编辑数据 316
15.4.6 例程:编辑数据 316
15.5 数据更新和永久保存 320
15.5.1 更新模式 320
15.5.2 与更新有关的操作 322
15.5.3 事务处理 323
15.5.4 永久保存数据 324
15.5.5 XML格式的永久保存 326
15.5.6 例程:数据更新和永久保存 327
15.6 小结 333
第16章 ADO高级编程技术 334
16.1 错误处理 334
16.1.1 ADO的错误处理 334
16.1.2 ADO错误类型 336
16.1.3 错误预防 337
16.1.4 例程:ADO错误处理 338
16.2 处理ADO事件 340
16.2.1 ADO事件处理程序概括 340
16.2.2 ADO事件类型 341
16.2.3 ADO事件参数 341
16.2.4 事件处理 343
16.2.5 例程:事件处理 344
16.3 游标和锁定 347
16.3.1 游标定义 347
16.3.2 游标类型 349
16.3.3 游标位置 350
16.3.4 微软的OLE DB游标服务 351
16.3.5 锁定定义 351
16.3.6 游标和锁定的特性总结 353
16.4 数据整形 353
16.4.1 数据整形概述 354
16.4.2 数据整形的常用命令 356
16.4.3 数据整形中的操作 356
16.4.4 例程:数据整形 360
16.5 Record和Stream对象 363
16.5.1 Record对象 364
16.5.2 Stream对象 366
16.5.3 在Internet发布中使用ADO 368
16.5.4 例程:在Internet发布中使用ADO 371
16.6 方法与技巧 373
16.7 小结 374
第五部分 分布式计算技术 377
第17章 .NET框架 377
17.1 微软.NET战略 377
17.2 .NET框架概述 377
17.2.1 .NET框架的目标 377
17.2.2 .NET框架的用户 378
17.2.3 .NET框架的体系结构 378
17.2.4 开发语言与工具 380
17.2.5 客户端应用程序开发 381
17.2.6 服务器应用程序开发 381
17.3 公用语言运行时环境 382
17.3.1 概述 382
17.3.2 支持的CLR语言 384
17.3.3 托管执行过程 385
17.3.4 微软中间语言 386
17.3.5 内存类型安全 387
17.3.6 自动内存管理 387
17.3.7 垃圾回收编程 392
17.3.8 元数据 396
17.3.9 程序集 397
17.3.10 命名空间 404
17.3.11 应用程序域 404
17.3.12 通用类型系统 405
17.3.13 公用语言规范 406
17.4 .NET框架类库 407
17.5 小结 411
第18章 ADO.NET编程技术 412
18.1 ADO.NET概述 412
18.1.1 ADO.NET的设计目标 412
18.1.2 ADO.NET与ADO 413
18.1.3 ADO.NET的体系结构 413
18.1.4 .NET数据提供程序 415
18.1.5 例程S18_01 416
18.1.6 使用通用接口 418
18.2 使用ADO.NET数据提供程序 419
18.2.1 Connection 420
18.2.2 Command 420
18.2.3 DataReader 422
18.2.4 DataAdapter 422
18.3 使用DataSet 422
18.3.1 编程构架DataSet 423
18.3.2 DataAdapter与DataSet 423
18.3.3 更新数据源 424
18.3.4 自动生成命令 429
18.3.5 DataSet与数据绑定控件 431
18.4 DataSet与XML 432
18.4.1 DataSet的XML交互方法 433
18.4.2 将DataSet写出到XML 433
18.4.3 从XML加载DataSet 435
18.4.4 从XSD推测DataSet架构 437
18.5 小结 438
第19章 ASP.NET编程技术 439
19.1 ASP.NET概述 439
19.1.1 Web服务器与Web页 439
19.1.2 ASP.NET简介 440
19.1.3 平台要求 441
19.1.4 ASP.NET的工作原理 444
19.1.5 应用实例 444
19.1.6 Visaul Studio中的Web应用程序 446
19.2 Web窗体 448
19.2.1 Web窗体简介 448
19.2.2 Web窗体与HTML窗体 448
19.2.3 Web窗体代码模型 449
19.2.4 Web窗体语法 453
19.2.5 Web窗体服务器控件 459
19.2.6 HTML服务器控件 460
19.2.7 Web服务器控件 461
19.2.8 用户控件 467
19.2.9 可重用代码 471
19.3 小结 472
第20章 Web服务 473
20.1 Web服务简介 473
20.1.1 概述 473
20.1.2 结构 474
20.1.3 实现模型 480
20.2 创建Web服务 480
20.2.1 不使用Visual Studio.NET 481
20.2.2 使用Visual Studio.NET 483
20.3 发布与部署Web服务 484
20.3.1 部署Web服务 484
20.3.2 启用Web服务的发现 485
20.4 使用Web服务 487
20.4.1 使用Visual Studio.NET 487
20.4.2 使用文本编辑器创建Web服务客户程序 489
20.4.3 从浏览器访问Web服务 491
20.4.4 访问Internet上的Web服务 493
20.5 ASP.NET创建Web服务的高级内容 496
20.5.1 Web服务中的事务处理 496
20.5.2 Web服务中的状态管理 497
20.5.3 Web服务中的安全 499
20.6 小结 501
附录 术语和缩略词 502