第1篇 基础知识篇 3
第1章 ASP.NET入门 3
丛书序 3
前言 3
光盘中代码使用要求 3
1.1.1 静态页面的工作原理 4
1.1 准备工作 4
1.1.2 客户端动态页面技术 5
1.1.3 服务器端动态页面技术 6
1.1.6 VBScript 8
1.1.5 JavaScript 8
1.1.4 HTML标记语言 8
1.2.2 ASP.NET的功能介绍 9
1.2.1 微软的.NET战略 9
1.2 认识ASP.NET 9
1.3.1 安装配置IIS 10
1.3 配置Web服务器 10
1.2.3 ASP、ASP.NET以及C#之间的区别 10
1.3.2 Web服务器的目录结构 11
1.3.3 测试安装 12
1.3.5 创建虚拟目录 13
1.3.4 虚拟目录和物理目录 13
1.3.6 权限 14
1.4 安装ASP.NET 15
1.4.2 安装Visual Studio.NET 16
1.4.1 Visual Studio.NET系统需求 16
1.4.3 检测.NET框架是否正确安装 17
1.5.1 Visual Studio.NET 2005的IDE界面 18
1.5 第一个ASP.NET程序 18
1.5.2 Visual Studio 2005的“文件”主菜单 19
1.5.4 用HTML编写的Hello World程序 20
1.5.3 Visual Studio 2005的“视图”主菜单 20
1.5.5 用ASP.NET编写的Hello World程序 21
1.5.6 用C#编写的Hello World程序 23
1.6.1 生成ASP.NET项目 24
1.6 剖析程序结构 24
1.6.3 编译ASP.NET项目 26
1.6.2 生成ASP.NET的代码文件 26
1.7.1 不能显示页面 27
1.7 排除ASP.NET故障 27
1.7.2 无法找到资源 28
1.7.5 其他问题 29
1.7.4 得到了一个空页面 29
1.7.3 脱机时web页面无效 29
1.8 小结 30
第2章 C#基础 31
2.1.2 C#面向对象特性 32
2.1.1 C#与Visual Basic以及Visual C++的区别 32
2.1 C#语言简介 32
2.2.1 Hello World的命令行方式 33
2.2 一个简单的程序 33
2.1.3 C#面向组件特性 33
2.1.4 C#的安全性 33
2.2.2 Hello World的代码解释:类和名称空间 34
2.2.3 Hello World的代码解释:Main方法 36
2.2.5 Hello World的代码解释:using语句 37
2.2.4 Hello World的代码解释:WriteLine函数 37
2.2.6 用Visual Studio.NET 2005编译Hello World 38
2.3.1 整型 39
2.3 C#中的数据类型 39
2.3.3 布尔型 41
2.3.2 浮点型 41
2.3.4 字符型 42
2.4.1 变量声明和赋值 43
2.4 C#中的变量和常量 43
2.4.3 枚举类型 45
2.4.2 定义常量 45
2.5.1 赋值运算符 46
2.5 C#中的操作符与表达式 46
2.5.2 算术运算符 47
2.5.4 位运算符 48
2.5.3 比较运算符 48
2.5.5 布尔逻辑运算符 50
2.6.1 选择语句:If语句 53
2.6 C#中的控制语句 53
2.6.2 选择语句:switch case语句 55
2.6.3 选择语句的例子 56
2.6.5 循环语句:while循环 58
2.6.4 循环语句:for循环 58
2.6.7 循环语句:foreach循环 59
2.6.6 循环语句:do...while循环 59
2.7.1 在Visual Studio.NET 2005中添加类 60
2.7 C#中的类机制简介 60
2.6.8 取消循环:break和continue语句 60
2.7.2 声明类 61
2.7.3 继承 62
2.7.4 object基类 63
2.7.6 重载 64
2.7.5 构造函数和析构函数 64
2.8 小结 65
第3章 基本对象编程 67
3.1.2 页面生命周期 68
3.1.1 页面对象模型概述 68
3.1 ASP.NET对象概述 68
3.1.3 页面生命周期的执行 69
3.2.1 Page类的属性 71
3.2 Page类:页面的基类 71
3.2.2 Page类的方法 74
3.2.3 Page类的事件 78
3.2.4 Web控制事件 79
3.3 Response对象:响应对象 80
3.3.1 使用缓冲区(Buffer) 81
3.3.2 检查使用者的连机状态 82
3.3.3 地址重定向 84
3.3.4 直接输出文本文件 85
3.4 Request对象:请求对象 86
3.4.1 读取表单数据 87
3.4.2 取得客户端浏览器的信息 89
3.4.3 获取用户传递的参数 90
3.5 Server对象:通用工具栏对象 91
3.5.1 HtmlEncode和HtmlDecode方法 92
3.5.2 UrlEncode和UrlDecode方法 93
3.5.3 MapPath方法:返回指定的物理路径 94
3.6 Application对象:记录应用程序参数的对象 95
3.6.1 存取Application对象变量值 96
3.6.3 Application对象的事件 97
3.6.2 锁定Application对象 97
3.7 Session对象:记录浏览器端的变量对象 98
3.7.1 设定Session对象变量的有效期限 100
3.8.1 Cookies对象的基本使用 101
3.8 Cookies对象:缓存对象 101
3.7.2 Session对象的事件 101
3.8.2 自定义Cookies对象 102
3.8.3 设定Cookie变量的生命周期 103
3.9 小结 104
第4章 创建Web应用程序 105
4.1 用Visual Studio.NET创建Web应用程序 106
4.2 用.NET SDK创建Web应用程序 108
4.2.1 创建应用程序根目录 110
4.2.3 创建.aspx页面 112
4.2.2 创建子目录 112
4.2.4 创建Global.asax文件 114
4.3 配置Web.config文件 115
4.3.3 〈trace〉:启用跟踪功能 117
4.3.2 锁定配置 117
4.3.1 重写子目录下的Web.config文件 117
4.3.4 〈globalization〉:控制全局设置 118
4.3.6 〈compilation〉:决定编译代码方式 119
4.3.5 〈httpRuntime〉:控制ASP.NET运行引擎 119
4.3.7 〈pages〉:页面级别设置 121
4.3.8 〈customErrors〉:自定义响应错误 122
4.3.9 〈authentication〉:验证配置 123
4.3.11 〈authorization〉:指定访问账户 124
4.3.10 〈identity〉:模拟 124
4.3.13 〈securityPolicy〉:安全策略选择 125
4.3.12 〈machineKey〉:指定验证密钥 125
4.3.15 〈sessionState〉:配置HttpModule 126
4.3.14 〈trust〉:实现安全策略 126
4.3.16 〈httpHandlers〉:处理特定请求或特定资源的类 127
4.3.18 〈processModel〉:配置可访问特性 128
4.3.17 〈httpModules〉:实现IhhtpModule接口 128
4.3.19 〈webControls〉:指定客户端使用的脚本位置 130
4.3.21 〈browserCaps〉:提供浏览器性能组件 131
4.3.20 〈clientTarget〉:设置别名 131
4.4 小结 132
4.3.22 〈appSettings〉:存储配置信息 132
第5章 创建Web窗体 133
5.1 Web窗体 134
5.1.1 页面元素 135
5.1.3 @Page指令:页面专有属性 136
5.1.2 页面生存周期 136
5.1.4 @Page指令的例子 137
5.1.5 @Page指令的跟踪属性 139
5.1.7 @Assembly指令:程序集链接 145
5.1.6 @Import指令:导入指令 145
5.2.2 页面重建 146
5.2.1 页面的往返处理 146
5.2 页面处理过程 146
5.2.3 Page_Load:页面处理过程的启动 149
5.2.4 事件处理过程 151
5.2.5 Page_UnLoad:页面的卸载 152
5.3.1 事件处理概述 153
5.3 事件处理 153
5.3.2 Page_Init事件:初始化 154
5.4.2 代码隐藏实例 158
5.4.1 代码隐藏的原理 158
5.4 Web窗体中使用代码隐藏 158
5.5 使用服务器控件 159
5.5.1 Web控件 160
5.5.2 HTML控件 161
5.6 小结 162
5.5.3 自定义服务器控件 162
第6章 服务器控件 163
6.2.1 Input(Button):按钮控件 164
6.2 HTML控件 164
6.1 服务器控件概述 164
6.2.2 Input(Text):文本控件 165
6.2.3 Input(Submit):提交控件 166
6.2.4 Input(Reset):重置控件 168
6.2.5 Input(CheckBox):复选框控件 169
6.2.6 Input(Radio):单选按钮控件 170
6.2.7 Input(File):上传控件 171
6.2.8 Input(Hidden):隐藏控件 173
6.3.2 TextBox:文本框控件 175
6.3.1 Button:按钮控件 175
6.3 Web控件 175
6.3.4 ListBox:列表框控件 176
6.3.3 DropdownList:下拉列表框控件 176
6.3.5 CheckBox:复选框控件 177
6.3.6 RadioButton:单选按钮控件 178
6.3.8 Table:表格控件 179
6.3.7 Image:图像控件 179
6.3.9 FileUpload:上传控件 180
6.4.1 RequiredFieldValidator:验证输入是否为空的控件 181
6.4 验证控件 181
6.4.2 CompareValidator:比较验证控件 184
6.4.3 RangeValidator:范围验证控件 186
6.4.4 RegularExpressionValidator:正则表达式验证控件 187
6.4.5 CustomValidator:用户自定义验证控件 188
6.4.6 ValidationSummary:汇总显示验证控件 190
6.5 小结 191
第7章 用户控件 193
7.1 用户控件概述 194
7.1.1 @Control指令 195
7.1.3 在页面中引用用户控件 196
7.1.2 用户控件和Web应用程序的区别和联系 196
7.2.1 用户控件的实例 200
7.2 用户控件属性介绍 200
7.2.2 公开用户控件的属性 204
7.3 以编程方式创建用户控件 205
7.3.2 动态加载技术的实例 206
7.3.1 动态加载技术 206
7.4 小结 210
第8章 使用ADO.NET开发数据库应用 211
8.1.2 关系型数据库 212
8.1.1 数据库系统 212
8.1 数据库开发概述 212
8.1.4 SQL Server使用概述 213
8.1.3 E-R模型 213
8.1.5 使用ADO.NET建立数据库应用程序 217
8.2.1 ADO.NET概述 218
8.2 了解ADO.NET 218
8.2.3 .NET数据提供程序 219
8.2.2 DataSet 219
8.3.1 Connection对象概述 220
8.3 创建数据库连接 220
8.3.2 Connection对象的属性 221
8.3.4 连接数据库的实例 222
8.3.3 连接字符串 222
8.3.5 打开和关闭连接 224
8.3.6 改变当前的数据库 226
8.4.1 Command对象及其属性 227
8.4 执行数据库命令 227
8.3.7 Connection对象的事件 227
8.4.2 Command对象的方法 228
8.4.3 创建和执行Command对象的实例 229
8.5.1 DataReader的属性及方法 231
8.5 使用DataReader读取数据 231
8.5.2 创建和使用DataReader对象的实例 232
8.6 DataSet和DataAdapter 233
8.6.2 DataSet和DataReader的比较 234
8.6.1 DataSet对象 234
8.6.5 DataSet数据更新 235
8.6.4 使用DataAdapter填充数据集 235
8.6.3 DataAdapter对象 235
8.7.2 简单绑定和复杂绑定 236
8.7.1 概述 236
8.7 数据绑定 236
8.7.4 DataBind.Eval方法 237
8.7.3 数据控件绑定 237
8.8 小结 238
第9章 数据显示控件 239
9.1.1 使用GridView控件 240
9.1 GridView控件 240
9.1.2 GridView控件的格式设定 241
9.1.3 分页和排序 244
9.1.5 GridView控件的更新 247
9.1.4 使用PagerStyle属性和PagerSettings属性 247
9.2 DataList控件 251
9.2.2 DataList基本使用 252
9.2.1 DataList控件的功能 252
9.3.3 将数据绑定到Repeater控件 254
9.3.2 在设计时使用Repeater控件 254
9.3 Repeater控件 254
9.3.1 Repeater控件功能 254
9.3.5 Repeater的使用 255
9.3.4 事件 255
9.4 小结 258
第10章 留言板 261
第2篇 模块篇 261
10.1.3 数据库模块 262
10.1.2 留言模块 262
10.1 模块介绍 262
10.1.1 显示模块 262
10.2.2 构建数据库 263
10.2.1 数据库的结构 263
10.2 数据库设计 263
10.3.1 建立数据连接 265
10.3 代码实现 265
10.3.2 创建显示模板 267
10.3.3 创建留言模块 271
10.3.4 创建验证模块 273
10.4 小结 274
第11章 BBS论坛 275
11.1.2 论坛登录模块 276
11.1.1 论坛注册模块 276
11.1 程序浏览 276
11.1.4 新文章发布模块 277
11.1.3 论坛标题显示模块 277
11.1.5 文章的浏览和回复模块 278
11.2.2 数据表的结构 279
11.2.1 数据库需求分析 279
11.1.6 数据库设计模块 279
11.2 数据库设计 279
11.2.3 数据表之间关系图 280
11.3.2 界面编写 281
11.3.1 流程图 281
11.3 论坛注册 281
11.3.3 代码编写 282
11.4.1 流程图 284
11.4 论坛登录 284
11.4.3 代码编写 285
11.4.2 界面编写 285
11.5.2 界面编写 287
11.5.1 流程图 287
11.5 论坛文章标题显示 287
11.6.1 流程图 289
11.6 文章浏览 289
11.6.2 界面编写 290
11.6.3 代码编写 293
11.7.1 流程图 294
11.7 回复主题 294
11.7.3 代码编写 295
11.7.2 界面编写 295
11.8.1 流程图 297
11.8 发表新主题 297
11.8.3 代码编写 298
11.8.2 界面编写 298
11.9 小结 300
第12章 发送邮件 301
12.2.1 什么是邮件服务器 302
12.2 个人邮件服务器的构建 302
12.1 SMTP协议简介 302
12.1.1 什么是SMTP 302
12.1.2 SMTP工作机制 302
12.2.2 构建个人邮件服务器 303
12.3.1 界面编写 304
12.3 程序实现 304
12.3.2 基本功能编写 305
12.3.3 设置正文邮件格式 307
12.3.4 增加抄送和暗送功能 309
12.3.5 增加添加附件功能 311
12.4 小结 313
第13章 网站流量统计系统 315
13.1.1 综合显示模块 316
13.1 模块介绍 316
13.1.2 日流量统计模块 317
13.1.4 月流量统计模块 318
13.1.3 周流量统计模块 318
13.1.6 任意时段流量统计模块 319
13.1.5 年度流量统计模块 319
13.1.9 操作系统信息统计模块 320
13.1.8 浏览器信息统计模块 320
13.1.7 IP信息统计模块 320
13.2.2 构建数据库 321
13.2.1 数据库的需求分析 321
13.2 数据库设计 321
13.2.4 在BBS论坛中添加数据收集代码 322
13.2.3 Global.asax文件简介 322
13.2.5 功能测试 324
13.3.2 基本信息的填写 325
13.3.1 界面设计 325
13.3 综合显示模块的实现 325
13.3.4 本日访问人数的计算 326
13.3.3 统计截止时间的计算 326
13.3.9 最高日访问量和最高日访问日期 327
13.3.8 日平均访问人数 327
13.3.5 总访问人数的计算 327
13.3.6 统计天数的计算 327
13.3.7 当月访问人数的计算 327
13.3.10 最高月访问量和最高月访问日期 328
13.3.11 最高年访问量和最高年访问日期 329
13.3.12 最常用浏览器信息 330
13.3.13 最常用操作系统 331
13.4.2 获得当天的总浏览人数 332
13.4.1 界面设计 332
13.4 当日浏览统计显示模块的实现 332
13.4.3 每一个小时统计信息显示 333
13.5.2 获得本周的周日日期 335
13.5.1 界面设计 335
13.5 本周流量统计显示模块的实现 335
13.5.3 获得总访问数,并将每一天的访问量存入数组 336
13.5.4 每一天的浏览量的显示 337
13.6.2 获得总的月访问量 339
13.6.1 界面设计 339
13.6 本月浏览量统计模块的实现 339
13.6.3 每一天的访问量的显示 340
13.7 本年浏览量统计模块的实现 341
13.7.2 总的年浏览量 342
13.7.1 界面设计 342
13.7.3 每一个月的浏览量的显示 343
13.8.2 DropDownList控件的数据绑定 344
13.8.1 界面设计 344
13.8 任意时间段浏览量查询模块的实现 344
13.8.3 查询时间段的输入验证 347
13.8.4 处理查询并显示 348
13.8.5 错误提示页面的构建 351
13.9.2 代码实现 352
13.9.1 界面设计 352
13.9 浏览器信息查看模块的实现 352
13.10.1 界面设计 354
13.10 操作系统信息查看模块的实现 354
13.10.2 代码实现 355
13.11 IP统计信息查询模块的实现 356
13.11.2 代码实现 357
13.11.1 界面设计 357
13.12 小结 359
第14章 网络投票 361
14.1.2 查看投票列表模块 362
14.1.1 前台显示模块 362
14.1 模块介绍 362
14.1.3 查看投票详细内容 363
14.1.5 添加投票 364
14.1.4 修改投票详细内容 364
14.2.2 数据表的构建 365
14.2.1 数据库需求分析 365
14.2 数据库设计 365
14.3.1 添加投票页面的构建 366
14.3 后台管理模块的构建 366
14.2.3 数据表之间的关系图 366
14.3.2 投票主题列表页面的构建 369
14.3.3 投票主题详细信息查看页面的构建 372
14.3.4 投票主题信息修改页面的构建 374
14.3.5 修改投票选项页面的构建 377
14.4.1 选择投票主题 379
14.4 前台显示模块的构建 379
14.4.2 投票功能的实现 380
14.5 小结 386
第15章 搜索引擎 387
15.2.1 数据库的生成 388
15.2 数据库的构建 388
15.1 功能介绍 388
15.2.2 数据表的说明 389
15.3.2 后台代码 390
15.3.1 界面编写 390
15.3 代码编写 390
15.4 小结 393
第16章 电子商城 397
第3篇 综合项目篇 397
16.1 程序浏览与功能划分 398
16.1.1 用户注册/登录/验证模块 400
16.1.3 全部书籍/全部特价书籍浏览模块 401
16.1.2 公告/特价书籍/最新书籍浏览模块 401
16.1.5 服务台模块 403
16.1.4 购物车模块 403
16.1.7 库存管理模块 404
16.1.6 管理员登录模块 404
16.1.8 管理员管理模块 405
16.1.9 订单管理模块 406
16.1.11 公告管理模块 407
16.1.10 用户管理模块 407
16.2.1 数据库表的设计 409
16.2 数据库设计 409
16.2.2 数据表之间的联系 412
16.3.2 第一个WebService的函数 413
16.3.1 什么是WebService 413
16.3 通过WebService构建功能函数 413
16.4 用户模块下网站整体风格的构建 414
16.4.1 添加主功能面板 415
16.4.2 添加登录控件 416
16.4.3 添加欢迎控件 418
16.4.4 书籍分类导航面板的构建 419
16.5.1 首页的构建 422
16.5 用户模块的构建 422
16.5.2 公告详细信息浏览页面的构建 427
16.5.3 书籍列表/特价书籍列表页面的构建 428
16.5.4 书籍详细信息查看页面的构建 432
16.5.5 注册页面的构建 433
16.5.6 用户详细信息查看页面/修改页面的构建 435
16.5.7 购物车功能的实现 438
16.5.8 服务台页面的实现 444
16.5.9 用户订单列表页面的构建 449
16.5.10 用户订单详细信息页面的构建 452
16.6.1 添加主功能面板 454
16.6 管理员模块下网站整体风格的构建 454
16.5.11 完善工作 454
16.6.2 添加欢迎控件 455
16.7.1 管理员登录页面的构建 456
16.7 管理员模块的构建 456
16.6.3 添加书籍分类导航面板 456
16.7.2 书籍列表/特价书籍列表页面的构建 458
16.7.3 书籍详细信息查看页面的构建 464
16.7.4 书籍信息修改页面的构建 466
16.7.5 设置特价书籍价格页面的构建 469
16.7.6 添加新书籍页面的构建 471
16.7.7 管理员列表页面的构建 472
16.7.8 管理员详细信息查看/修改页面的构建 474
16.7.9 添加管理员页面的构建 477
16.7.10 用户列表页面的构建 478
16.7.11 用户详细信息查看页面的构建 479
16.7.12 订单列表页面的构建 480
16.7.13 订单详细信息查看页面的构建 483
16.7.14 公告列表页面的构建 486
16.7.15 公告详细信息查看/修改页面的构建 487
16.7.16 公告添加页面的构建 489
16.7.17 完善工作 490
16.8 小结 491
第17章 网上办公系统 493
17.1.1 公司决策模块 494
17.1 模块介绍 494
17.1.5 BBS模块 495
17.1.4 订单管理模块 495
17.1.2 部门决策模块 495
17.1.3 客户管理模块 495
17.2.1 数据库的设计 496
17.2 数据库设计 496
17.2.2 数据表之间的联系 500
17.3 通过WebService来构建功能函数 501
17.4 网站整体风格的构建 502
17.5 登录模块的构建 506
17.6.1 公司决策的撰写模块 507
17.6 公司决策模块的构建 507
17.6.2 公司决策修改模块 509
17.6.3 公司决策审核模块 513
17.6.4 公司决策查看模块 515
17.7 部门决策模块的构建 517
17.7.1 部门决策的撰写模块 518
17.7.2 部门决策修改模块 519
17.7.3 部门决策审核模块 521
17.7.4 部门决策查看模块 524
17.8 客户模块的构建 528
17.8.1 客户的添加模块 529
17.8.2 客户信息的修改模块 531
17.8.3 客户的审核模块 531
17.8.4 客户的详细信息查看模块 533
17.9 订单模块的构建 535
17.9.1 订单添加模块 535
17.9.2 订单的查看模块 537
17.10 BBS论坛模块 540
17.10.1 显示主题列表模块 540
17.10.2 主题内容显示模块 541
17.10.3 发表新主题模块 547
17.10.4 发表回复模块 548
17.10.5 主题内容修改模块 549
17.10.6 回复内容修改模块 549
17.11 小结 550
附录A 修改ASP.NET 2.0应用程序服务配置 551
附录B 如何从Visual Studio 2003迁移到Visual Studio 2005 553
C.1.1 使用SqlMemberShipProvider 555
C.1 前期准备 555
C.1.2 设置SqlMemberProvider 555
附录C ASP.NET 2.0中的登录控件 555
C.2 使用登录控件 556
C.2.1 Login控件 556
C.2.2 CreateUserWizard控件 557
C.2.3 PasswordRecovery控件 557
C.2.4 LoginView、LoginName和LoginStatus控件 558
C.2.5 ChangePassword控件 559
附录D 本书涉及的例程 561