第1部分 ADO.NET概述 1
第1章 以数据为中心的应用程序概述 1
1.1 以数据为中心的应用程序的发展史 2
1.1.1 DAO 3
1.1.2 RDO 3
1.1.3 OLE DB和ADO 4
1.1.4 ADO.NET 5
1.2 NET架构综述 5
1.2.1 CLR 6
1.2.2 .NET架构类库 8
1.3 从ADO到ADO.NET的发展史 9
1.4.1 断开连接方式的数据结构 10
1.4 ADO.NET的特征 10
1.4.2 数据集中的数据 11
1.4.3 内置XML支持 11
1.5 比较ADO和ADO.NET 11
1.5.1 内存中的数据表示 11
1.5.2 数据浏览 12
1.5.3 光标的使用 12
1.5.4 断开连接方式的数据访问 12
1.5.5 在应用程序之间共享数据 12
1.6 ADO.NET的优点 13
1.6.1 互操作性 13
1.6.2 可维护性 13
1.6.3 可编程性 13
1.6.5 可扩展性 14
1.7 小结 14
1.6.4 性能 14
第2章 ADO.NET结构 16
2.1 使用数据相关名字空间 16
2.1.1 System.Data.OleDb 16
2.1.2 System.Data.SqlClient 17
2.2 ADO.NET组件 17
2.2.1 数据集 18
2.2.2 .NET数据提供者 18
2.3 ADO.NET和XML 21
2.4 小结 21
第3章 连接SQL Server和其他数据源 23
3.1 ADO.NET的Connection设计对象——概述 23
3.1.1 OleDbConnection对象 23
3.1.2 SqlConnection对象 27
3.2 Visual Studio.NET中的连接设计工具 28
3.2.1 使用Server Explorer创建数据连接 29
3.2.2 使用Properties窗口创建数据连接 32
3.2.3 使用Data Form Wizard创建连接 33
3.3 编码创建数据连接 38
3.3.1 连接SQL Server数据库 39
3.3.2 连接到OLE DB数据源 39
3.4 小结 40
第4章 ADO.NET数据适配器 41
4.1 数据适配器概述 41
4.1.1 管理相关表 42
4.1.2 使用Connection对象 42
4.1.3 数据适配器属性 42
4.1.5 表映射 43
4.1.6 DataAdapter对象 43
4.1.4 数据适配器命令中的参数 43
4.2 创建和配置数据适配器 48
4.2.1 使用Server Explorer 49
4.2.2 使用Data Adapter Configuration Wizard 51
4.2.3 手工创建数据适配器 57
4.2.4 使用Properties窗口配置数据适配器 58
4.2.5 预览数据适配器结果 61
4.2.6 编程创建和配置数据适配器 62
4.3 创建表映射 64
4.3.1 使用Properties窗口 64
4.3.2 编写代码 66
4.4 为数据适配器命令使用参数 67
4.4.1 选择参数 67
4.5 小结 68
4.4.2 更新参数 68
第5章 ADO.NET数据库 69
5.1 数据集概述 69
5.1.1 DataSet对象模型 69
5.1.2 数据集和XML 71
5.1.3 比较数据集的类型 72
5.2 创建数据集 73
5.2.1 Visual Studio.NET设计工具概述 73
5.2.2 使用设计工具创建有类型数据集 75
5.2.3 使用设计工具创建无类型数据集 78
5.2.4 编程创建数据集 84
5.3 填充数据集 85
5.4 小结 85
6.1.1 DataTable对象 87
6.1 数据表概述 87
第6章 处理数据表 87
6.1.2 DataTalbeCollection类 88
6.1.3 DataColumn对象 89
6.1.4 DataColumnCollection类 89
6.1.5 DataRow对象 89
6.1.6 DataRowCollection类 90
6.2 定义数据表结构 90
6.2.1 创建数据表的列 90
6.2.2 添加约束 93
6.3 操作数据表行中的数据 95
6.3.1 添加数据 95
6.3.2 查看数据 96
6.3.3 编辑数据 97
6.3.5 识别行的错误信息 99
6.3.4 删除行 99
6.3.6 接受或拒绝修改 100
6.4 小结 100
第2部分 专业项目1 101
项目1 使用ADO.NET 101
第7章 项目个案研究——SalesData应用程序 102
7.1 项目生命周期 103
7.1.1 需求分析 103
7.1.2 总体设计 104
7.1.3 详细设计 104
7.1.4 构建 104
7.1.5 测试 104
7.1.6 接受 104
7.2 数据库结构 105
7.3 小结 105
8.1 应用程序窗体的设计 106
第8章 创建SalesData应用程序 106
8.1.1 主窗体 107
8.1.2 第二个窗体 112
8.2 应用程序的运行 112
8.2.1 应用程序的工作方式 112
8.2.2 应用程序的代码 115
8.3 小结 127
第9章 使用Data Adapter Configuration Wizard创建简单的应用程序 128
9.1 应用程序的窗休 128
9.2 使用Data Adapter Configuration Wizard 130
9.3 Data Adapter Configuration Wizard生成的代码 138
9.4 小结 146
10.1.1 需求分析 147
10.1 项目生命周期 147
第10章 项目个案研究——MyEvents应用程序 147
10.1.2 总体设计 148
10.1.3 详细设计 148
10.2 小结 149
第11章 创建MyEvents应用程序 150
11.1 设计应用程序的Web窗体 150
11.1.1 使用HTML Table控件 155
11.1.2 使用DataGrid控件 156
11.1.3 使用Calendar控件 156
11.2 运行应用程序 157
11.2.1 显示当前日期的事件数据 158
11.2.2 添加事件 163
11.2.3 查看事件 169
11.3 完整的代码 171
11.4 小结 181
项目2 使用数据关系 182
第3部分 专业项目2 182
第12章 在ADO.NET中使用数据关系 183
12.1 Visual Basic 6.0对数据关系的传统实现方案 185
12.2 在一个数据集中处理多个表 186
12.3 向数据集中添加关系 187
12.4 DataRelation类 190
12.4.1 ChildTable属性 190
12.4.2 ParentTable属性 191
12.4.3 ChildKeyConstraint属性 192
12.4.4 ParentKeyConstraint属性 193
12.5.1 使用DataSet类的Relations属性 194
12.5.2 使用DataTable类的ParentRelations属性 194
12.5 DataRelationCollection类 194
12.6 显示嵌套数据关系中的数据 195
12.7 使用XML Designer创建关系 197
12.8 小结 198
第13章 项目个案研究——CreditCard应用程序 199
13.1 项目生命周期 200
13.1.1 需求分析 200
13.1.2 总体设计 200
13.1.3 详细设计 201
13.1.4 构建 201
13.1.5 测试 201
13.2 数据库结构 202
13.2.1 Customers表 202
13.2.2 CardDetails表 202
13.2.3 StatementDetails表 202
13.2.5 表的关系 203
13.2.4 TransactionDetails表 203
13.3 小结 204
第14章 创建CreditCard应用程序 205
14.1 设计应用程序窗体 205
14.1.1 基本格式 206
14.1.2 分组框 206
14.1.3 文本框 206
14.1.4 按钮 207
14.2 应用程序的运行机制 208
14.2.1 验证 208
14.2.2 检索数据及向数据集中填充数据的代码 209
14.2.3 创建数据关系 212
14.2.4 遍历相关表 213
14.2.5 关闭窗体 214
14.3 完整的代码 215
14.4 小结 227
第4部分 专业项目3 228
项目3 处理数据集中的数据 228
第15章 处理数据集中的数据 229
15.1 过滤和排序数据集数据 229
15.1.1 直接在数据表中过滤和排序 230
15.1.2 数据视图概述 230
15.1.3 向窗体或组件中添加数据视图 231
15.1.4 使用数据视图过滤和排序数据 232
15.2 数据视图中的记录 233
15.2.1 读取数据视图中的记录 234
15.2.2 在数据视图中查找记录 234
15.2.3 更新数据视图中的记录 236
15.2.4 向数据视图中插入记录 236
15.2.6 使用数据视图处理相关表 237
15.2.5 删除数据视图中的记录 237
15.3 创建和处理数据视图管理器 238
15.4 数据更新事件 239
15.5 己改行的数据 240
15.5.1 检查修改过的行 241
15.5.2 访问修改过的行 241
15.5.3 获得一行的特定版本 242
15.6 数据集中的数据验证 242
15.6.1 在列修改期间验证数据 242
15.6.2 在行修改期间验证数据 243
15.7 小结 243
第16章 项目个案研究——PizzaStore应用程序 244
16.1 项目生命周期 244
16.1.1 需求分析 244
16.1.3 详细设计 245
16.1.2 总体设计 245
16.2 小结 246
第17章 创建PizzaStore应用程序 247
17.1 设计应用程序Web窗体 247
17.2 PizzaStore应用程序的运行机制 251
17.2.1 配置数据适配器 252
17.2.2 生成数据集 254
17.2.3 向导生成的代码 255
17.2.4 填充数据集 257
17.2.5 向DdlState下拉列表控件中添加项 258
17.2.6 显示比萨饼店的详细信息 260
17.3 完整的代码 261
17.4 小结 266
18.1.1 需求分析 267
第18章 项目个案研究——UniversityCourseReports应用程序 267
18.1 项目生命周期 267
18.1.2 总体设计 268
18.1.3 详细设计 268
18.2 数据库结构 268
18.3 小结 271
第19章 创建UniversityCourseReports应用程序 272
19.1 设计应用程序Web窗体 272
19.2 应用程序的运行机制 275
19.2.1 配置数据适配器 278
19.2.2 生成数据集 281
19.2.3 向导生成的代码 282
19.2.4 填充数据集 286
19.2.5 获取课程和大学详细信息 287
19.3 小结 297
第5部分 专业项目4 298
项目4 对数据源执行直接操作 298
第20章 对数据源执行直接操作 299
20.1 使用直接数据访问模型的优点 300
20.2 数据命令对象概述 300
20.2.1 SqlCommand类 301
20.2.2 OleDbCommand类 304
20.3 DataReader对象 307
20.3.1 SqlDataReader类 307
20.3.2 OleDbDataReader类 309
20.4 使用DataCommand对象 311
20.4.1 使用工具箱添加SqlCommand对象 311
20.4.2 使用工具箱添加OleDbCommand对象 314
20.4.3 编程创建数据命令对象 315
20.4.4 在DataCommand对象中使用参数 316
20.5 对DataCommand对象使用存储过程 318
20.6 小结 319
第21章 项目个案研究——ScoreUpdates应用程序 320
21.1 项目生命周期 320
21.1.1 需求分析阶段 320
21.1.2 总体设计 321
21.1.3 详细设计 321
21.2 数据库结构 321
21.3 小结 322
第22章 创建Score Updates应用程序 323
22.1 设计应用程序窗体 323
22.2 btnGetScore_Click过程 329
22.3 完整的代码 332
22.4 小结 337
第6部分 专业项目5 338
项目5 更新数据源中的数据 338
第23章 更新数据源中的数据 339
23.1 使用命令对象更新数据 340
23.2 修改数据集中的数据 342
23.2.1 更新数据集中的现有记录 343
23.2.2 向数据集中插入新行 344
23.2.3 从数据集中删除记录 345
23.2.4 合并两个数据集 345
23.2.5 更新约束 347
23.2.6 修改数据集时更新错误 347
23.2.7 数据有效性检查 347
23.2.8 在数据集中维护修改信息 347
23.3 从数据集中更新数据源 349
23.2.9 提交对数据集的修改 349
23.3.1 使用DataAdapter对象修改数据 350
23.3.2 更新数据集的相关表 355
23.4 小结 356
第24章 项目个案研究——MyEvents应用程序Ⅱ 357
24.1 项目生命周期 357
24.1.1 总体设计 357
24.1.2 详细设计 357
24.2 小结 358
第25章 MyEvents应用程序Ⅱ 359
25.1 应用程序Web窗体的设计 359
25.2 MyEvents应用程序的运行机制 362
25.2.2 ShowEventDetails过程 363
25.2.1 Page_Load事件过程 363
25.2.3 FillDataSet过程 364
25.2.4 MappedTable过程 365
25.2.5 BtnSave_Click事件过程 365
25.2.6 BtnShow_Click事件过程 367
25.3 修改事件 371
25.4 删除事件 382
25.5 完整的代码 386
25.6 小结 401
第7部分 专业项目6 402
项目6 管理数据一致性 402
第26章 管理数据一致性 403
26.1 ADO.NET中的数据一致性概述 403
26.1.2 保存所有值的方案 404
26.2 用动态SQL实现乐观一致性控制 404
26.1.1 版本号方案 404
26.3 使用存储过程实现乐观一致性控制 408
26.4 创建事务 410
26.5 小结 411
第27章 项目个案研究——Movie Ticket Bookings应用程序 412
27.1 项目生命周期 412
27.1.1 需求分析 412
27.1.2 总体设计 413
27.1.3 详细设计 413
27.2 数据库结构 413
27.3 小结 415
第28章 创建Movie Ticket Bookings应用程序 416
28.1 创建应用程序的用户界面 416
28.2.1 连接数据库 417
28.2 向应用程序中添加功能 417
28.2.2 生成数据集 419
28.2.3 填充数据集 421
28.2.4 验证输入数据 421
28.3 窗体代码 427
28.4 小结 430
第8部分 专业项目7 431
项目7 使用XML和数据集 431
第29章 XML和数据集 432
29.1 XML概述 432
29.1.1 XML和HTML 432
29.1.2 XML规范 433
29.2 XML Schema简介 437
29.2.1 XML Schema的组件 437
29.2.2 XSD元素 439
29.2.3 创建XML Schema 440
29.3 XML Schema和数据集 441
29.4.1 填充数据集 442
29.4 处理XML文件和数据集 442
29.4.2 输出数据集中的XML数据 443
29.4.3 使用XML数据加载数据集 445
29.4.4 从XML中加载数据集模式 446
29.4.5 将数据集模式信息表示为XSD 447
29.4.6 处理数据集中的嵌套XML和相关的数据 448
29.4.7 XSL和XSLT转换 448
29.5 小结 449
第30章 项目个案研究——XMLDataSet 450
30.1 项目生命周期 450
30.1.1 需求分析 450
30.1.2 总体设计 450
30.2 数据库结构 451
30.1.3 详细设计 451
30.3 小结 452
第31章 创建XMLDataSet应用程序 453
31.1 设计XMLDataSet应用程序 453
31.1.1 btnGetXML_Click过程 456
31.1.2 btnWritelnvoice_Click过程 457
31.2 完整的代码 459
31.3 小结 463
第32章 异常和错误处理 464
32.1 异常概述 464
32.2 处理异常 464
32.3 Try...Catch块 465
32.4 Exception类 465
32.4.3 DataException类 466
32.4.2 SqlException类 466
32.4.1 OleDbException类 466
32.5 小结 473
第9部分 专业项目8 475
项目8 创建和使用XML Web服务 475
第33章 创建和使用XML Web服务 476
33.1 XML Web服务简介 477
33.2 XML在Web服务中的角色 477
33.3 Web服务的规范 478
33.3.1 SOAP 478
33.3.2 UDDI 478
33.3.3 WSDL 478
33.4 创建Web服务 479
33.5 创建Web服务客户 484
33.6 测试Web服务 488
33.7 部署Web服务 489
33.8 小结 493
第34章 项目个案研究——MySchedules应用程序 494
34.1 数据库结构 494
34.2 小结 497
第35章 创建MySchedules应用程序 498
35.1 创建应用程序的用户界面 498
35.2 MySchedules应用程序的运行机制 504
35.3 完整的代码 519
35.4 小结 526
第10部分 附录 527
附录A Microsoft.NET架构简介 527
A.1 Microsoft.NET架构概述 527
A.2 .NET架构的优点 527
A.3 Visual Studio.NET中的.NET架构实现 528
A.3.2 Web服务的实现 529
A.3.3 Windows Form的实现 529
A.3.4 实现了项目无关对象模型 529
A.3.1 Web Form的实现 529
A.3.5 增强的调试功能 530
A.3.6 支持ASP.NET编程 530
A.3.7 增强的IDE环境 530
A.4 .NET架构中的类型和名字空间 531
A.5 MSIL 532
A.6 跨语言互操作性 532
A.6.1 通用语言规范概述 533
A.6.2 通用类型系统概述 533
附录B Visual Basic.NET概述 535
B.1 Visual Basic.NET概述 535
B.2.1 数据类型 538
B.2 声明变量 538
B.2.2 变量声明 539
B.2.3 变量范围 542
B.3 使用常量 542
B.4 使用枚举 543
B.5 使用运算符 543
B.5.1 算术运算符 543
B.5.2 比较运算符 547
B.5.3 逻辑/位运算符 549
B.6 创建类的实例 554
B.7 使用共享成员 559
B.8 类与标准模块的区别 559
B.9 使用Visual Basic.NET中的集合 559
B.11.1 If...Then...Else语句 564
B.10 条件逻辑 564
B.11 判断结构 564
B.11.2 Select...Case语句 566
B.12 循环结构 568
B.12.1 While...End While语句 569
B.12.2 Do...Loop语句 569
B.12.3 For...Next语句 571
B.12.4 For Each...Next语句 572
B.13 内置函数 574
B.13.1 字符串函数 574
B.13.2 日期函数 577
B.14 使用过程 580
B.14.1 Sub过程 581
B.14.2 Function过程 583
B.14.3 Property过程 584
B.15 过程参数 585
B.15.1 通过值传递参数 585
B.15.2 通过引用传递 585
B.15.3 可选参数 587
B.16 Visual Basic.NET中的事件处理 587
B.17 使用工具箱设计应用程序 589
B.18 在Visual Basic.NET中创建Windows应用程序 592
B.19 创建ASP.NET Web应用程序 593
B.19.1 创建项目和窗体 594
B.19.2 添加控件和文本 594
B.19.3 为控件创建事件处理函数 595
B.19.4 构建和运行Web Forms页面 595
B.20 在Visual Basic.NET中创建Pocket PC应用程序 595