目录 3
第1部分 简介 3
第1章 数据源和Web 3
1.1 数据驱动的Web站点的优缺点 3
1.2 Web站点使用数据源的方式 5
1.3 查找信息 7
1.3.1 数据库服务器 8
1.3.2 平面文件 8
1.3.3 服务 9
1.4 ADO.NET简介 9
1.4.1 数据访问技术简史 9
1.4.2 数据提供程序 10
1.5.1 数据驱动的Web页面(第一部分) 14
1.5 开发第一个示例 14
1.5.2 示例说明 16
1.6 小结 17
第2章 关系数据库 19
2.1 表、行和字段 20
2.1.1 创建新表 21
2.1.2 属性和约束 28
2.2 语句和存储过程 29
2.2.1 结构化查询语言 30
2.2.2 存储过程 33
2.3 索引 33
2.4 建立表之间的关系 37
2.4.1 一对一关系 37
2.4.2 一对多关系 38
2.4.3 多对多关系 39
2.4.4 使用外键约束实现关系 40
2.4.5 关系图 44
2.5 用户、角色和许可 45
2.6 完成样例数据库 47
2.6.1 用Web Matrix填充数据库 48
2.6.2 用MSDE Administrator填充数据库 48
2.6.3 使用MySQLControl Center填充数据库 48
2.6.4 示例说明 49
2.7 视图和触发器 49
2.8 小结 50
第Ⅱ部分 核心技巧 53
第3章 连接数据源 53
3.1 Connection对象 53
3.2 连接字符串 53
3.3.1 使用SqlConnection对象连接MSDE 54
3.3 连接数据源 54
3.3.2 使用OdbcConnection对象连接MySQL 58
3.3.3 使用OleDbConnection对象连接Access 61
3.3.4 连接其他数据源 63
3.4 Connection对象详述 68
3.4.1 ConnectionString属性 68
3.4.2 State属性 68
3.4.3 SQLServer和PacketSize属性 68
3.4.4 更多的属性和方法 69
3.5 存储连接字符串 69
3.6 错误处理 71
3.7 小结 75
第4章 命令和SQL查询(上) 77
4.1 连接和命令的生命周期 77
4.3 创建命令 78
4.2 Command对象 78
4.4 查询命令 79
4.4.1 查询一个表 80
4.4.2 对结果排序 82
4.4.3 查询多个表 85
4.4.4 对结果过滤 87
4.5 WHERE子句 95
4.5.1 使用比较运算符 95
4.5.2 使用逻辑运算符 96
4.5.3 使用IN和BETWEEN运算符 96
4.6 使用Execute方法 97
4.7 小结 98
第5章 命令和SQL查询(下) 101
5.1 使用ExecuteNonQuery()方法 101
5.1.1 插入数据 102
5.1.2 更新数据 106
5.1.3 删除数据 108
5.2 使用ExecuteScalar()方法 110
5.3 使用Microsoft Access建立查询 112
5.3.1 在Microsoft Access中构建SELECT查询 113
5.3.2 示例说明 116
5.3.3 在Microsoft Access中构建INSERT查询 116
5.3.4 示例说明 117
5.4 小结 118
第6章 DataReader和DataSet 119
6.1 DataReader对象 119
6.1.1 迭代DataReader 120
6.1.2 DataReader的属性和方法 126
6.2 DataSet对象 127
6.2.1 填充DataSet 128
6.2.2 DataSet组件 131
6.2.3 从头创建DataSet 134
6.3 DataSet和DataReader 140
6.4 编码技巧回顾 141
6.5 小结 142
第7章 在页面上显示数据 143
7.1 数据绑定 143
7.1.1 支持数据的Web窗体控件 144
7.1.2 把数据关联到控件上 144
7.1.3 调用DataBind() 146
7.2 内联绑定 146
7.2.1 内联绑定DataReader 146
7.2.2 示例说明 149
7.2.3 内联绑定DataSet 151
7.2.4 示例说明 153
7.3 列表绑定 154
7.3.1 用DataReader对列表进行单值查找 156
7.3.2 示例说明 158
7.3.3 用DataReader在列表中进行多值选择 160
7.3.4 示例说明 161
7.3.5 使用DataSet和事件查找字段 163
7.3.6 示例说明 165
7.4 表格绑定 166
7.4.1 使用控件 167
7.4.2 定制DataGrid 169
7.5 处理多个查询结果 181
7.5.1 处理一批结果 181
7.5.2 示例说明 183
7.6 DataSet和DataReader 185
7.7 小结 186
第8章 在页面上写入数据 187
8.1 修改数据库 187
8.2 给数据库添加新数据 188
8.2.1 INSERT语句 188
8.2.2 处理数据库的规则 189
8.3 从数据库中删除数据 202
8.3.1 SQLDELETE语句 202
8.3.2 DataGrid的ButtonColumn 202
8.4 编辑数据 207
8.4.1 PDATE语句 207
8.4.2 建立可编辑的DataGrid 207
8.5 小结 216
9.1 需要存储过程的原因 217
第9章 存储过程 217
9.2 创建存储过程 218
9.2.1 创建存储过程的示例 218
9.2.2 示例说明 220
9.3 安全性和存储过程 221
9.4 调用存储过程 221
9.4.1 调用存储过程的示例 222
9.4.2 示例说明 223
9.5 Execute方法的使用 223
9.6 修改和删除存储过程 224
9.6.1 修改存储过程的示例 224
9.6.2 示例说明 225
9.7 存储过程和参数 226
9.7.1 使用输入参数使存储过程更灵活 226
9.7.2 使用输出参数返回数据 232
9.8 小结 237
第10章 修改数据库的结构 239
10.1 命令行工具 240
10.1.1 osql.exe 240
10.1.2 mysql.exe 242
10.2 创建数据库 244
10.2.1 创建数据库的示例 244
10.2.2 示例说明 245
10.3 创建表 246
10.3.1 在MSDE中创建表 246
10.3.2 示例说明 248
10.3.3 在MySQL中创建表 248
10.3.4 示例说明 250
10.4 添加、修改和删除列 250
10.4.1 修改表的定义 251
10.4.2 示例说明 253
10.5 创建和删除索引 254
10.5.1 创建索引 254
10.5.2 删除索引 255
10.6 创建和删除关系 256
10.6.1 创建关系 256
10.6.2 删除关系 259
10.7 删除表 260
10.7.1 删除数据库表的示例 260
10.7.2 示例说明 262
10.8 删除数据库 262
10.8.1 删除数据库的示例 263
10.8.2 示例说明 264
10.9 小结 264
11.1 分析 267
第Ⅲ部分 应用 267
第11章 应用程序的设计和实现 267
11.1.1 客户需求 268
11.1.2 选择正确的工具 270
11.2 设计 272
11.2.1 数据库设计 273
11.2.2 应用程序的设计 277
11.3 实现 279
11.3.1 建立原型 279
11.3.2 存储过程 280
11.3.3 代码问题 280
11.4 测试和调试 281
11.4.1 单元测试 281
11.4.2 测试性能 282
11.5 小结 283
第12章 案例分析(上) 285
12.1 应用程序简介 285
12.2 设计数据库 288
12.2.1 最初的设计 289
12.2.2 建立表之间的关系:第二范式(2NF) 290
12.2.3 第三范式(3NF) 292
12.2.4 剩余的实体 293
12.3 创建数据库 293
12.3.1 使用数据库脚本 294
12.3.2 示例说明 294
12.4 创建数据访问层 295
12.4.1 设计数据访问层 295
12.4.2 建立DataAccess类 300
12.4.3 示例说明 303
12.4.4 使用DataAccess类 306
12.4.5 示例说明 307
12.5 小结 308
第13章 案例分析(下) 309
13.1 错误处理 309
13.1.1 在代码中使用try...catch...finally捕获错误 309
13.1.2 数据库错误和@@ERROR 311
13.1.3 为整个站点捕获错误 312
13.1.4 处理错误的示例 312
13.1.5 示例说明 314
13.2 存储过程和DataAccess类 315
13.2.1 更新DataAccess类 316
13.2.2 示例说明 317
13.2.3 给数据库调用添加参数 319
13.2.4 示例说明 322
13.3 控制用户的访问 324
13.3.1 建立Security类 324
13.3.2 示例说明 326
13.3.3 使用Security类 327
13.3.4 示例说明 330
13.4 使用事务处理 331
13.4.1 数据库中的事务处理 332
13.4.2 在代码中使用事务处理 333
13.4.3 修改DataAccess类 334
13.4.4 编辑元素 338
13.5 小结 354
附录A 安装 357
附录B SQL入门基础 365
附录C 范例数据库表 381