目录 1
第Ⅰ部分 初识.NET和数据库 1
第1章 Visual Basic.NET快速入门 1
1.1 回顾编程概念 1
1.1.1 .NET Framework组件一瞥 2
1.1.2 JIT与虚拟机 5
1.1.3 程序集和命名空间 5
1.1.4 .NET Framework类库 8
1.2 熟练使用VS.NET集成开发环境 8
1.2.1 所有语言共享IDE 9
1.2.2 两种界面模式 9
1.2.3 内置Web浏览器功能 10
1.2.4 命令窗口 11
1.2.5 内置对象浏览器 12
1.2.6 集成调试器 13
1.2.7 集成帮助系统 14
1.2.8 宏 14
1.2.9 升级的部署工具 15
1.2.10 文本编辑器 15
1.2.11 IDE和工具调整 16
1.2.12 Server Explorer 17
1.2.13 数据连接 17
1.2.14 Toolbox 18
1.2.15 Task List 18
1.3 本章小结 19
2.1 数据库的概念 20
2.2 使用数据库的原因 20
第2章 使用数据库 20
2.3 关系数据库与层次数据库 21
2.3.1 层次数据库 21
2.3.2 关系数据库 22
2.4 VB.NET程序员对关系数据库需要了解什么 22
2.4.4 列和字段 23
2.4.5 Null值 23
2.4.6 关系数据库模型 23
2.4.3 行和记录 23
2.4.2 表 23
2.4.1 数据库管理系统 23
2.4.7 键 27
2.4.8 索引 27
2.4.9 数据完整性 28
2.4.10 规范化 29
2.4.11 反规范化 33
2.5 UserMan数据库架构 33
2.6 本章小结 34
第Ⅱ部分 ADO.NET连接层参考 35
第3章 理解ADO.NET 35
3.1 数据相关的命名空间 37
3.2 本章小结 38
第4章 数据提供程序简介 39
4.1 本章小结 42
第5章 Connections类和Transactions类 43
5.1 Connection类 43
5.1.1 ConnectionString属性 44
5.1.2 Connection类属性 47
5.1.3 Connection类方法 48
5.1.4 Connection类事件 48
5.1.5 打开连接 48
5.1.6 关闭连接 50
5.1.7 销毁连接 50
5.1.8 比较Connection对象 50
5.1.9 操作连接状态 52
5.1.10 共享连接 53
5.1.11 处理提供程序、驱动程序和数据源消息 58
5.2 事务 62
5.2.1 定义事务边界 63
5.2.2 手动事务 63
5.2.3 自动化事务 71
5.3 处理Connection类和Transaction类异常 73
5.4 本章小结 80
第6章 Command类和Parameter类 81
6.1 使用Command对象 81
6.1.1 OdbcCommand、OleDbCommand和SqlCommand类 81
6.1.2 Command类属性 83
6.1.3 Command类方法 83
6.1.4 执行命令 84
6.1.5 处理Command类异常 87
6.2 使用Parameter对象 90
6.2.1 实例化Parameter对象 91
6.2.2 设置参数的数据类型 92
6.2.3 指定参数类型 93
6.2.4 参数映射 93
6.2.5 对参数使用空值 95
6.3 本章小结 95
第7章 DataReader类 96
7.1 使用DataReader类 96
7.1.1 OdbcDataReader、OleDbDataReader和SqlData Reader类 96
7.1.2 声明和实例化DataReader对象 96
7.1.5 在DataReader中读取行 98
7.1.3 打开DataReader对象 98
7.1.4 关闭DataReader对象 98
7.1.6 检查列中的空值 99
7.1.7 从数据源读取图像 100
7.1.8 提取元数据 104
7.1.9 处理多个结果 106
7.1.10 DataReader属性 106
7.1.11 DataReader方法 106
7.1.12 处理DataReader异常 106
7.1.13 何时使用DataReader类 107
7.1.14 XmlReader类 107
7.1.16 XmlReader方法 108
7.1.17 声明和实例化XmlReader对象 108
7.1.15 XmlReader属性 108
7.1.18 打开XmlReader对象 109
7.1.19 关闭XmlReader对象 109
7.1.20 在XmlReader对象中读取行 109
7.1.21 XmlReader对象中的定位 110
7.1.22 处理XmlReader异常 113
7.2 本章小结 113
第8章 DataAdapter类和CommandBuilder类 114
8.1 介绍DataAdapter类 114
8.1.1 DataAdapter属性 114
8.1.3 DataAdapter事件 115
8.1.4 实例化DataAdapter对象 115
8.1.2 DataAdapter方法 115
8.1.5 设置Command属性 116
8.1.6 填充DataSet或DataTable对象 121
8.1.7 检索SELECT语句参数 122
8.1.8 从数据源检索架构 124
8.1.9 更新数据源 129
8.2 使用CommandBuilder类 132
8.2.1 何时使用CommandBuilder类 133
8.2.2 准备DataAdapter 133
8.3 本章小结 135
第Ⅲ部分 ADO.NET无连接层参考 136
第9章 DataSet类 136
9.1 使用DataSet类 136
9.1.1 Recordset类与DataSet类 137
9.1.2 DataSet类属性 138
9.1.3 DataSet类方法 139
9.1.4 DataSet类事件 139
9.1.5 实例化DataSet对象 139
9.1.6 使用DataAdapter类填充DataSet对象 140
9.1.7 清除DataSet对象中的数据 141
9.1.8 清除DataSet对象 141
9.1.9 复制DataSet对象 141
9.1.10 合并DataSet对象中的数据和其他数据 142
9.1.11 检测并处理DataSet对象中数据的改动 147
9.1.12 接受或拒绝DataSet对象中数据的改动 148
9.1.13 使用DataAdapter类更新数据源 151
9.2 本章小结 154
第10章 DataTable类和DataView类 155
10.1 使用DataTable类 155
10.1.1 DataTable类属性 155
10.1.2 DataTable类方法 155
10.1.3 DataTable类事件 155
10.1.4 声明和实例化DataTable对象 155
10.1.5 构造您自己的DataTable对象 156
10.1.6 填充DataTable对象 164
10.1.7 清除DataTable对象中的数据 165
10.1.8 复制DataTable对象 166
10.1.9 搜索DataTable对象 167
10.1.10 复制DataTable对象中的行 169
10.1.11 处理列改动 170
10.1.12 处理行改动 172
10.1.13 处理行删除 173
10.2 使用DataView类 174
10.2.1 DataView类属性 175
10.2.2 DataView类方法 175
10.2.3 DataView类事件 175
10.2.4 声明和实例化DataView对象 176
10.2.5 搜索DataView对象 176
10.2.6 对DataView进行排序 179
10.2.7 操作DataView对象中的行 180
10.3 小结 182
11.1.2 DataRow类方法 183
11.1.4 声明和初始化DataRow对象 183
11.1.3 DataRow事件 183
11.1 使用DataRow类 183
11.1.1 DataRow类属性 183
第1 1章 DataRow类和DataColumn类 183
11.1.5 操作DataRow对象 184
11.1.6 使用DataRow对象的不同版本 189
11.1.7 处理DataRow对象的错误 191
11.2 使用DataColumn类 195
11.2.1 DataColumn类属性 195
11.2.2 DataColumn类方法 195
11.2.3 DataColumn类事件 195
11.2.4 声明和初始化DataColumn对象 195
11.2.5 使用AutoIncrement DataColumn对象 196
11.2.6 处理空值 197
11.3 本章小结 199
第12章 数据关系 200
12.1 使用DataRelation类 200
12.1.1 DataRelation类属性 200
12.1.2 DataRelation类方法 200
12.1.3 DataRelation类事件 201
12.1.4 声明和初始化DataRelation对象 201
12.1.5 使用带有关系的约束 208
12.1.6 关系定位 215
12.2 本章小结 218
13.1 使用Server Explorer 219
第13章 集成开发环境中的数据库应用 219
第Ⅳ部分 在VS.NET IDE中使用数据库 219
13.1.1 处理数据连接 220
13.1.2 处理服务器 222
13.2 数据库项目 229
13.2.1 创建数据库项目文件夹 231
13.2.2 删除数据库项目文件夹 232
13.2.3 将数据库对象添加到数据库项目中 232
13.3 使用面向企业架构师的Visio设计数据库 235
13.4 使用Database Designer设计数据库 236
13.4.1 创建数据库关系图 236
13.4.2 保存数据库关系图 241
13.5 使用Table Designer 241
13.5.1 添加列 242
13.5.3 添加索引和键 243
13.5.2 设置主键 243
13.5.4 添加约束 244
13.5.5 创建关系 246
13.6 使用Query Designer设计查询 246
13.6.1 初识Query Designer窗格 246
13.6.2 检查SQL语法 251
13.6.3 执行查询 252
13.6.4 分析各种查询类型 252
13.7 使用SQL Editor编辑脚本 254
13.7.1 使用Query Editor生成SQL语句 255
13.7.2 保存脚本 256
13.8 创建类型化的DataSet类 257
13.7.3 编辑和使用脚本模板 257
13.7.4 运行SQL脚本 257
13.8.1 使用XML Designer创建类型化的DataSet对象 258
13.8.2 使用DataSet Desinger创建类型化的DataSet对象 258
13.8.3 使用类型化的DataSet类 259
13.9 本章小结 260
第Ⅴ部分 异常处理与调试 261
第14章 异常处理 261
14.1 结构化异常处理 262
14.1.1 启用结构化异常处理 263
14.1.2 在一个过程中使用两种或多种结构化异常处理程序 263
14.1.3 分析Exception类 264
14.1.4 处理结构化异常处理程序中的异常 265
14.1.5 过滤异常 269
14.1.6 创建自己的异常 271
14.1.7 抛出结构化异常 272
14.1.8 处理数据相关异常 272
14.1.9 结构化异常的CLR处理 273
14.2 非结构化异常处理 274
14.2.1 启用非结构化异常处理 274
14.2.2 分隔异常处理程序和正常代码 275
14.2.3 在同一个过程中使用多个非结构化异常处理程序 275
14.2.4 使用父异常处理程序 277
14.2.5 禁用非结构化异常处理程序 278
14.2.7 忽略异常并继续执行 279
14.2.6 禁用非结构化的本地异常 279
14.2.8 在异常处理程序中处理异常 280
14.2.9 分析Err对象 281
14.2.10 引发非结构化异常 282
14.2.11 确定抛出的异常是不是用户自定义异常 283
14.2.12 捕获DLL文件中出现的异常 283
14.2.13 处理数据相关异常 284
14.3 本章小结 285
第15章 使用Debug类和Trace类 286
15.1 使用Debug类 286
15.1.1 启用调试功能 286
15.1.2 禁用调试功能 288
15.1.3 使用调试断言 288
15.1.4 使用调试错误消息 289
15.2 使用Trace类 290
15.1.5 Debug类的方法和属性 290
15.3 本章小结 291
第Ⅵ部分 服务器端处理 292
第16章 使用存储过程 292
16.1 优化问题 293
16.2 使用存储过程和函数 296
16.2.1 使用存储过程的原因 296
16.2.2 创建和运行存储过程 297
16.2.3 检索RETURN语句指定的值 306
16.2.4 自动生成存储过程代码 307
16.2.7 运行Oracle存储过程 308
16.2.5 改变存储过程的名称 308
16.2.6 查看存储过程的相关性 308
16.2.8 运行DB2存储过程 312
16.3 本章小结 316
第17章 使用视图 317
17.1 使用视图 317
17.1.1 使用视图的限制 318
17.1.2 使用视图的原因 318
17.1.3 创建视图 318
17.1.4 在IDE中运行视图 319
17.1.5 在代码中使用视图 320
17.2 本章小结 323
18.1 使用触发器 324
第18章 使用触发器 324
18.1.1 使用触发器的原因 325
18.1.2 创建触发器 325
18.1.3 查看触发器源代码 331
18.2 本章小结 331
第Ⅶ部分 层次数据库 332
第19章 层次数据库 332
19.1 LDAP 332
19.2 编程访问Active Directory 333
19.2.1 System.DireetoryServices命名空间 333
19.2.2 探讨DirectoryEntry类 334
19.2.3 在Active Directory中查找对象 338
19.2.4 返回非默认的Active Directory对象属性 340
19.2.5 处理对象的属性值 341
19.3 使用OLE DB.NET Data Provider访问Active Directory 344
19.3.1 利用连接的OLE DB Provider 345
19.3.2 指定利用LDAP协议访问的域 345
19.3.3 指定从Active Directory检索的信息 345
19.3.4 更新Active Directory对象 346
19.3.5 检索用户SID 347
19.4 本章小结 348
第20章 Exchange Server 349
20.1 使用Microsoft OLE DB Exchange Server Provider 351
20.2 使用Microsoft OLE DB Provider for Internet Publishing 353
20.3 从SQL Server访问作为链接服务器的Exchange Server 355
20.3.1 把Exchange Server设置为链接服务器 355
20.3.3 在链接服务器Exchange Server上创建视图 357
20.3.2 关闭链接服务器Exchange Server 357
20.4 本章小结 358
第Ⅷ部分 Message Queuing 359
第21章 消息队列 359
21.1 安装Message Queuing 360
21.1.1 工作组模型与Active Directory模型 361
21.1.2 非独立客户端、独立客户端与服务器 362
21.2 无连接编程 363
21.3 MessageQueue类一瞥 363
21.4 何时使用消息队列 363
21.5.1 私有队列与公共队列 365
21.5.2 编程创建队列 365
21.5 使用消息队列 365
21.5.3 显示或修改消息队列的属性 367
21.5.4 绑定现有消息队列 368
21.5.5 发送消息 370
21.5.6 检索消息 371
21.5.7 查看消息 374
21.5.8 从队列中挑选特定的消息 375
21.5.9 检索队列中的所有消息 376
21.5.10 异步发送和检索消息 377
21.5.11 清除队列中的消息 378
21.5.12 按优先级排列消息 379
21.5.13 定位消息队列 380
21.5.14 删除消息队列 382
21.5.15 控制消息队列的存储空间 383
21.6 事务化消息队列 384
21.6.1 内部事务 384
21.6.2 外部事务 384
21.6.3 创建事务化的消息队列 384
21.6.4 启动事务 385
21.6.5 结束事务 385
21.6.6 使用MessageQueueTransaction类 386
21.7 系统生成的队列 388
21.8 保护Message Queuing 391
21.8.1 使用身份验证 391
21.8.2 使用加密 395
21.8.3 使用访问控制 397
21.8.4 使用SetPermissions方法 398
21.8.5 使用审计 399
21.9 MSMQ 3.0的特性 400
21.9.1 添加MSMQ 3.0功能 401
21.9.2 使用MSMQ 3.0类 402
21.9.3 通过Internet传输消息 403
21.9.4 向多个队列发送消息 404
21.9.5 可编程管理 407
21.9.6 使用消息队列触发器 407
21.9.7 MSMQ 3.0特性总结 414
21.10 本章小结 414
第22章 使用XML与SQL Server 2000 415
22.1 SQL Server与XML 415
22.2.1 安装SQLXML 3.0 419
22.2 使用SQLXML 3.0 419
22.2.2 配置ISAPI Extension 420
22.2.3 重新启动虚拟目录应用程序 423
22.2.4 测试ISAPI Extension 424
22.2.5 客户端与服务器端XML格式化 433
22.2.6 SQLXML 3.0 Managed Classes 436
22.2.7 通过SQLXML3.0使用Web服务 458
22.3 本章小结 462
第Ⅹ部分 数据包装 463
第23章 数据包装器 463
23.1 使用数据包装器的原因 463
23.2 面向对象编程 463
23.2.1 多态 464
23.2.2 继承 464
23.2.3 封装 466
23.2.4 与OOP有关的VB.NET关键字 466
23.3 包装数据库 469
23.4 本章小结 477
第24章 Windows数据绑定控件 478
24.1 数据绑定控件与手动数据连接 478
第Ⅺ部分 数据绑定控件 478
24.2 不同的UI,不同的控件 479
24.3 对Windows Form使用数据绑定控件 479
24.3.1 检查绑定上下文 480
23.3.2 创建数据绑定Windows Form控件 490
23.3.3 将数据绑定Windows Form控件添加到Toolbox中 491
24.4 本章小结 492
25.1 对Web Form使用数据绑定控件 493
25.2 将ASP.NET服务器控件绑定到数据源 493
第25章 Web数据绑定控件 493
25.2.1 维护状态 495
25.2.2 选择正确的数据存储 496
25.2.3 使用Data Form Wizard创建窗体 497
25.2.4 创建数据绑定WebForm控件 504
25.3 本章小结 506
26.2 找出对象 507
26.1 标识UerMan中的信息 507
26.2.1 数据库对象 507
第26章 UserMan 507
第Ⅻ部分 示例应用程序 507
26.2.2 Active Directory对象 519
26.2.3 其他对象 521
26.3 创建客户端 521
26.4 提示与思路 522
26.4.1 数据库方面的建议 522
26.4.2 一般建议 523
26.5 本章小结 524
附录 525
附录A 游标与锁定 525
附录B 使用传统ADO与COM Interop 538
附录C 连接层属性、方法和事件 541
附录D 无连接层属性、方法和事件 593
第Ⅸ部分 XML与SQL Server 2000