第1章 在Web上显示数据 1
1.1 数据驱动Web站点的优缺点 1
1.1.1 优点 1
1.1.2 缺点 2
1.2 数据源 3
1.2.1 数据库 3
1.2.2 文本文件 4
1.2.3 XML 4
1.2.4 其他数据源 5
1.3 从数据库中检索数据 5
1.4 ADO.NET 6
1.4.1 Windows平台上的数据访问 7
1.4.2 ADO.NET体系结构 8
1.4.3 数据提供者 10
1.5 数据驱动的应用程序体系结构 11
1.5.1 数据层、业务层和表示层 12
1.5.2 用控件表示数据 13
1.6 Microsoft SQL Server Desktop Engine 14
1.6.1 小型的SQL Server 14
1.6.2 获得和安装MSDE 15
1.6.3 使用MSDE 16
1.7 小结 17
第2章 关系数据库 19
2.1 数据库术语和概念 19
2.2 数据和实体 21
2.3 关系数据库 22
2.3.1 SQL概况 24
2.3.2 Codd的12条规则 25
2.4 SQL入门介绍 27
2.4.1 SELECT语句 28
2.4.2 INSERT、UPDATE以及DELETE语句 31
2.5.1 第一范式(INF) 35
2.5 规范化 35
2.5.2 第二范式(2NF) 36
2.5.3 第三范式(3NF) 37
2.6 SQL Server与Access 38
2.7 小结 39
第3章 连接数据源 40
3.1 什么是连接 40
3.1.1 ADO与ADO.NET之间的区别 42
3.1.2 ADO.NET中可用的数据库连接 42
3.2 连接语法 43
3.2.1 使用SQL Server.NET数据提供者 44
3.2.2 使用OLE DB.NET数据提供者——Access 49
3.2.3 使用OLE DB.NET数据提供者——Excel 52
3.2.4 有关Connection对象的更多内容 56
3.2.5 连接XML数据源 58
3.3 获取模式信息(OLE DB) 62
3.4 一个更好的连接字符串 66
3.5 常见的错误 67
3.6 小结 68
第4章 DataReader对象、Command对象和Web服务器控件 69
4.1 处理和显示数据 69
4.1.1 Command对象 70
4.1.2 DataReader对象 71
4.2 使用DataReader对象 72
4.3 在ASP.NET中使用基于数据的控件 77
4.4 列表框和下拉列表控件 78
4.5 使用单选按钮列表 85
4.6 多项选择 88
4.6.1 显示多项选择控件 89
4.6.2 使用来自多个选项的数据 89
4.7 DataGrid控件 96
4.7.1 整个网格的格式设置 96
4.7.2 行的格式设置 98
4.7.3 进一步显示数据的方法 102
4.8 常见的错误 103
4.9 小结 103
第5章 使用DataSet对象读取数据 105
5.1 DataSet对象 105
5.1.1 DataSet和DataReader 106
5.1.2 DataTable对象 107
5.1.3 数据传送的6个步骤 107
5.1.4 访问DataSet表的行和列 111
5.1.5 处理多数据源 116
5.1.6 使用DataView对象创建数据的视图 131
5.2 DataGrid列的属性 136
5.3 DataGrid排序 142
5.4 DataGrid分页 148
5.5 Calendar控件和数据源 152
5.6 从下拉列表中进行过滤 157
5.7 常见错误 165
5.8 小结 165
第6章 创建和插入记录 167
6.1 使用ASP.NET和ADO.NET插入数据 167
6.1.1 看起来非常简单 167
6.1.2 主键码 167
6.1.3 外部键码 168
6.1.5 正规的语法形式 169
6.1.4 强制性字段 169
6.2 使用ADO.NET插入新记录 170
6.3 ASP.NET验证控件 173
6.4 使用DataSet对象插入记录 179
6.5 小结 194
第7章 更新和删除记录 195
7.1 更新数据库 195
7.1.1 SQL UPDATE语句 195
7.1.2 使用Command对象更新记录 197
7.1.3 使用DataSet更新记录 201
7.2 删除数据 212
7.2.1 SQL DELETE语句 212
7.2.2 使用Command对象来删除记录 213
7.2.3 使用DataSet删除记录 214
7.3 验证数据 218
7.4 小结 220
第8章 使用存储过程 222
8.1 存储过程的优点 222
8.2 调用存储过程 224
8.3 创建存储过程 226
8.4.1 SQL变量 232
8.4 将参数传递到存储过程 232
8.4.2 从Web页面传递参数 234
8.5 存储过程输出参数 239
8.6 小结 245
第9章 真实的数据驱动ASP.NET应用程序 246
9.1 处理数据库错误 246
9.1.1 使用@@ERROR 246
9.1.2 有效利用@@ERROR 249
9.1.3 使用RAISEERROR命令引发数据库错误 252
9.1.4 在.NET中处理错误 255
9.2 事务处理 259
9.2.1 SQL中的事务处理 260
9.2.2 ADO.NET中的事务处理 265
9.3 代码的组织 269
9.4 数据安全的技巧 274
9.4.1 谨慎使用查询字符串的值 274
9.4.2 不要使用系统管理员(sa)账户 277
9.4.3 根据需要创建多个SQL用户 277
9.5 小结 277
第10章 组件化 278
10.1 组件化的概念 278
10.2 使用类库的原因 279
10.2.1 简化编程工作 279
10.1.2 类库 279
10.1.1 组件的混乱理解 279
10.2.2 增强的持久性 281
10.3 编写类库 281
10.3.1 Northwind的业务要求 282
10.3.2 构造解决方案的结构 282
10.3.3 在Web页中使用类库 289
10.3.4 小结 297
10.4 编写用于数据库访问的类库 298
10.4.1 设计用于数据库访问的类 298
10.4.2 概述NwtLibrary 298
10.4.3 Category,Product和Supplier类 300
10.4.4 在Web应用程序中使用类库 308
10.5 其他注意事项 312
10.5.1 存储过程与类库 313
10.5.2 兼容性 313
10.5.3 复杂性 314
10.5.4 记录文档 315
10.6 小结 315
第11章 性能 316
11.1 性能测量 316
11.2 连接池 317
11.2.1 OLE DB和连接池 317
11.2.2 SQL Server和连接池 318
11.3 性能计数器 322
11.2.3 其他连接池的属性 322
11.4 DataSet、DataReader和Recordset 327
11.5 类型化DataSet与后期绑定DataSet 330
11.6 微调DataSet和DataReader 332
11.7 小结 334
第12章 构建一个完整的数据驱动Web应用程序 336
12.1 Wrox Auction站点概述 336
12.1.1 基于Web的分类系统 337
12.1.2 安装应用程序 338
12.2 ASP.NET页面的流程 340
12.3.1 创建一个新的应用程序 341
12.3 创建应用程序 341
12.3.2 预加载的代码 342
12.3.3 设置配置信息 343
12.4 编写应用程序 343
12.4.1 主页 343
12.4.2 用户注册和登录 345
12.4.3 管理出售的产品 362
12.4.4 浏览和绑定 379
12.4.5 完成销售 389
12.5 程序的完善 393
12.6 小结 394