第1章 C#数据库设计技术概述 1
1.1 .NET数据库操作技术概述 1
1.1.1 ADO技术概述 1
1.1.2 ADO.NET技术概述 2
1.1.3 .NET ORM技术映射 2
1.1.4 数据库设计框架概述 3
1.2 ADO.NET数据操作模型 4
1.2.1 在线方式数据库操作 5
1.2.2 离线方式数据库操作 6
1.3 数据库程序的分类 6
1.3.1 SQL脚本程序 6
1.3.2 Transact-SQL程序设计 7
1.3.3 数据库组件设计 7
本章小结 8
习题1 8
第2章 SQL Server 2005关系数据库管理系统 9
2.1 SQL Server 2005简介 9
2.1.1 SQL Server的发展简史 9
2.1.2 SQL Server 2005的新特性 10
2.2 SQL Server 2005的版本与安装 12
2.2.1 SQL Server 2005的版本 12
2.2.2 SQL Server 2005的运行环境 13
2.2.3 SQL Server 2005的安装 14
2.3 SQL Server 2005的系统数据库和表 21
2.3.1 SQL Server 2005的系统数据库 21
2.3.2 SQL Server 2005的系统表 22
2.4 SQL Server 2005的管理工具和实用程序 23
2.4.1 SQL Server配置管理器 24
2.4.2 SQL Server管理控制台 28
2.4.3 联机丛书 36
2.5 SQL Server 2005的安全性管理 37
2.5.1 SQL Server 2005身份验证模式 37
2.5.2 SQL Server数据库的安全性 39
2.5.3 SQL Server数据库对象的安全性 40
本章小结 41
习题2 41
第3章 Transact-SQL语言 43
3.1 SQL Server 2005的数据类型 43
3.1.1 数值数据类型 44
3.1.2 字符数据类型 45
3.1.3 日期和时间数据类型 46
3.1.4 文本和图像数据类型 46
3.1.5 货币数据类型 46
3.1.6 二进制数据类型 47
3.1.7 特殊数据类型 47
3.1.8 用户自定义数据类型 48
3.1.9 SQL Server 2005数据类型的不同分类 48
3.2 数据定义语言(DDL) 48
3.3 数据操纵语言(DML) 50
3.4 数据控制语言(DCL) 54
3.4.1 权限类型和状态 54
3.4.2 GRANT语句 55
3.4.3 DENY语句 57
3.4.4 REVOKE语句 57
3.5 系统存储过程 58
3.6 其他语言元素 58
3.6.1 注释 58
3.6.2 变量 59
3.6.3 运算符 60
3.6.4 函数 61
3.6.5 流程控制语句 66
3.6.6 批处理 73
本章小结 74
习题3 75
第4章 数据库的创建和维护 77
4.1 数据库的存储结构 77
4.1.1 数据库文件 78
4.1.2 数据库文件组 78
4.2 创建、修改和删除数据库 79
4.2.1 创建数据库 79
4.2.2 查看数据库 84
4.2.3 修改数据库 85
4.2.4 删除数据库 87
4.3 备份和还原数据库 87
4.3.1 概述 87
4.3.2 备份数据库的操作 88
4.3.3 还原数据库 92
本章小结 95
习题4 95
第5章 数据库表的创建和维护 97
5.1 定义表结构 97
5.1.1 创建表的设计原则 98
5.1.2 如何定义表的结构 98
5.2 如何修改表结构 101
5.2.1 如何重新命名表 102
5.2.2 如何修改表字段 102
5.3 如何向表中添加记录 103
5.4 如何删除表中记录 105
5.5 如何修改表中的记录值 106
5.6 如何删除表 107
5.7 如何查看表 108
5.7.1 查看表属性 108
5.7.2 查看表中数据——简单查询 108
5.7.3 使用聚合函数的查询 110
5.7.4 查看表中数据——连接查询 115
5.7.5 查看表中数据——嵌套查询 118
本章小结 122
习题5 123
第6章 数据库表索引和约束的建立 125
6.1 创建和管理索引 125
6.1.1 索引的设计原则和索引的类型 126
6.1.2 创建索引 127
6.1.3 查看、修改和删除索引 131
6.2 数据库数据的完整性 133
6.2.1 什么是数据库数据的完整性 133
6.2.2 如何实现数据库数据的完整性 135
6.2.3 主键约束 136
6.2.4 唯一性约束 138
6.2.5 检查性约束 140
6.2.6 外键约束 143
6.2.7 默认约束 147
本章小结 149
习题6 150
第7章 数据库对象的创建和维护 152
7.1 创建和管理视图 152
7.1.1 视图 152
7.1.2 如何创建视图 153
7.1.3 查看视图 157
7.1.4 修改、删除及重命名视图 159
7.1.5 使用视图操作表数据 162
7.2 创建和管理存储过程 165
7.2.1 存储过程的概念 165
7.2.2 创建存储过程 166
7.2.3 查看、修改和删除存储过程 170
7.3 创建和管理触发器 175
7.3.1 触发器的作用和类型 175
7.3.2 创建触发器 176
7.3.3 查看、修改和删除触发器 180
7.4 创建和管理关系图 184
7.5 游标 187
7.5.1 游标的概念 187
7.5.2 游标的使用 187
本章小结 189
习题7 190
第8章 SQL Server 2005并发控制机制 192
8.1 并发控制理论 192
8.2 并发调度 192
8.2.1 事务 193
8.2.2 数据不一致性 193
8.2.3 可串行化调度 195
8.3 封锁机制 195
8.3.1 基本锁 195
8.3.2 专用锁 196
8.3.3 封锁协议 197
8.3.4 锁的粒度 198
8.4 事务隔离级别 199
8.4.1 事务隔离级别 199
8.4.2 数据库引擎的隔离级别 200
8.5 死锁的预防和处理 200
8.5.1 死锁的概念 200
8.5.2 预防和处理死锁 202
本章小结 203
习题8 204
第9章 ADO.NET数据连接 205
9.1 基本的数据库连接 206
9.2 在线数据库操作模型 207
9.3 数据库连接的基本成员 207
9.4 常用数据库连接方式 207
9.4.1 SQL Server数据库连接 207
9.4.2 OLE DB数据库连接 211
9.4.3 ODBC数据库连接 213
9.4.4 MySQL数据库连接 215
9.5 连接中的元数据处理 216
9.6 连接的状态与数据处理 218
9.7 使用连接池优化连接 218
9.8 数据库异常处理 221
本章小结 223
习题9 223
第10章 ADO.NET数据库操作对象Commard 225
10.1 Command接口和SqlCommand对象 225
10.1.1 Command对象模型 226
10.1.2 Command对象的常见属性 226
10.2 通过Command对象操作数据库 226
10.2.1 查询性操作 228
10.2.2 更改性操作 231
10.2.3 标量行查询 232
10.2.4 Command参数对象 233
10.3 Command对象调用存储过程 236
10.3.1 存储过程的调用方法 236
10.3.2 输入参数的设置方法 237
10.3.3 输出参数的设置方法 237
10.3.4 返回参数的设置方法 237
10.4 通过Visual Studio 2005设计Command对象 237
本章小结 240
习题10 240
第11章 ADO.NET数据读取对象 242
11.1 DataReader的基本概念 242
11.1.1 DataReader的基本模型 242
11.1.2 使用DataReader进行数据查询 245
11.1.3 使用DataReader进行多指令数据查询 247
11.1.4 DataReader显示数据 248
11.2 使用DataReader操作元数据 250
11.2.1 通过DataReader获取表对象信息 250
11.2.2 通过DataReader获取字段对象信息 251
本章小结 251
习题11 251
第12章 内存中的数据库DataSet 252
12.1 DataSet的基本模型 252
12.2 DataSet中的表结构 254
12.2.1 表结构的创建 254
12.2.2 表结构的约束 255
12.2.3 表结构的主键 255
12.2.4 表结构的外键 256
12.3 DataSet表的操作 257
12.3.1 DataSet表的数据的插入 257
12.3.2 DataSet表的数据的删除 259
12.3.3 DataSet表的数据的复制 261
12.3.4 DataSet表的数据的查询 261
12.3.5 DataSet表的数据的枚举 261
12.4 DataSet中的视图对象 262
12.5 DataSet的XML序列化 265
12.6 DataSet的XML操作 267
12.7 通过Visual Studio 2005设计DataSet 269
本章小结 273
习题12 273
第13章 离线数据操作与DataAdapter 275
13.1 离线数据操作模型 275
13.1.1 DataAdapter提取数据 276
13.1.2 DataAdapter更新数据 280
13.2 DataAdapter数据操作过程中对连接对象的影响 283
13.3 DataAdapter的基本结构 284
13.3.1 DataAdapter的Select命令 286
13.3.2 DataAdapter的Delete命令 289
13.3.3 DataAdapter的Update命令 292
13.3.4 DataAdapter的Insert命令 294
13.3.5 DataAdapter的TableMapping机制 297
本章小结 298
习题13 299
第14章 ADO.NET数据连接工厂 300
14.1 ADO.NET数据连接工厂的概念模型 300
14.2 创建独立于特定数据库的应用程序 301
14.3 数据库连接驱动模型 305
14.3.1 ODBC数据提供程序 306
14.3.2 OLE DB数据提供程序 316
14.3.3 SQL Server数据提供程序 320
14.3.4 Oracle数据提供程序 323
14.4 ADO.NET基本结构模型 323
本章小结 324
习题14 324
第15章 事务 326
15.1 事务的基本概念 326
15.2 本地事务 327
15.2.1 事务的处理方法 327
15.2.2 事务对象的属性 329
15.2.3 本地嵌套事务 329
15.3 全局事务 332
15.3.1 全局事务的基本模型 332
15.3.2 基于Com+服务的全局事务 333
15.3.3 基于ADO.NET自身的全局事务处理机制 338
本章小结 340
习题15 340
第16章 BLOB对象的操作 342
16.1 数据库大对象的类型 342
16.2 二进制数据的操作 343
16.2.1 图片的数据库存储 343
16.2.2 图片的数据库读取 348
16.3 BLOB数据对象的操作原则 354
本章小结 356
习题16 356
第17章 基于在线方式的通讯录设计 357
17.1 系统的需求概要和项目背景 357
17.2 系统的开发计划 360
17.3 系统的概要设计 361
17.3.1 功能模块分析 361
17.3.2 系统业务流程 361
17.3.3 数据库设计 362
17.4 系统的代码实现 363
17.4.1 创建项目 363
17.4.2 制作“用户登录”窗体 369
17.4.3 制作“主操作”窗体 372
17.4.4 制作“新增联系人”窗体 381
17.4.5 制作“修改联系人”窗体 386
17.4.6 制作“查询联系人”窗体 391
17.5 系统的部署和发布 394
本章小结 398
习题17 398
第18章 基于离线方式的通讯录设计 399
18.1 系统的需求概要和项目背景 399
18.2 系统的开发计划 400
18.3 系统的概要设计 400
18.3.1 功能模块分析 400
18.3.2 系统业务流程 400
18.3.3 数据库设计 400
18.4 系统的代码实现 400
18.4.1 创建项目 400
18.4.2 设计DataClass.cs模块 401
18.4.3 制作“用户登录”窗体 404
18.4.4 制作“主操作”窗体 406
18.4.5 制作“新增联系人”窗体 414
18.4.6 制作“修改联系人”窗体 419
18.4.7 制作“查询联系人”窗体 423
18.5 系统的部署和发布 424
本章小结 424
习题18 425
第19章 系统DAL组件设计 426
19.1 系统的需求概要和项目背景 426
19.2 系统的概要设计 427
19.3 系统的开发计划 427
19.4 系统的代码实现 428
19.4.1 创建一个Web项目,配置数据库连接 428
19.4.2 创建一个数据访问层 429
19.4.3 给数据访问层添加参数化的方法 435
19.4.4 插入、更新和删除数据 438
19.4.5 完成数据库访问层 440
19.5 系统的部署和发布 440
本章小结 442
习题19 442
第20章 照片管理器设计 443
20.1 系统的概要设计和项目背景 443
20.2 系统的开发计划 443
20.3 系统的代码实现 443
20.3.1 数据库和表的创建 444
20.3.2 数据访问层(DAL)的设计与实现 445
20.3.3 表示层(USL)的开发 445
20.3.4 业务逻辑层(BLL)的设计与实现 450
20.4 系统的部署和发布 459
本章小结 460
习题20 460
参考文献 461