第1篇 C#基础 18
1 C#语言和框架概述 18
1.1 .NET 3.5框架 18
1.1.1 .NET 3.5框架支持的开发语言 18
1.1.2 C#语言的特色 19
1.1.3 C#语言的运行机制 19
1.1.4 C#语言的底层类库 20
1.2 编写C#语言 21
1.2.1 用记事本编写Hello World程序并编译程序 21
1.2.2 分析代码格式 21
1.3 小结 22
2 Visual Studio 2008开发工具概述 23
2.1 Visual Studio简介 23
2.1.1 支持.NET的Visual Studio 23
2.1.2 Visual Studio 2008和Visual Studio 2005 24
2.1.3 简化版本的开发工具—Visual Studio Express 25
2.2 Visual Studio 2008的安装 25
2.2.1 Visual Studio 2008 IDE安装 26
2.2.2 MSDN安装 27
2.3 Visual Studio 2008 IDE界面概览 27
2.3.1 进入Visual Studio 2008工作界面 28
2.3.2 菜单栏 29
2.3.3 工具栏 29
2.3.4 工具箱 30
2.3.5 属性窗口 30
2.3.6 解决方案资源管理器 31
2.3.7 服务器资源管理器 32
2.4 使用MSDN 32
2.4.1 进入MSDN 32
2.4.2 索引 33
2.4.3 搜索 34
2.5 创建应用程序 35
2.5.1 控制台应用程序 35
2.5.2 Windows应用程序 36
2.5.3 ASP.NET 3.5网站 37
2.6 小结 38
3 变量、运算符和表达式 39
3.1 数据类型 39
3.1.1 值类型 39
3.1.2 引用类型 39
3.1.3 类型转换 40
3.1.4 装箱和拆箱 41
3.2 变量和常量 41
3.2.1 声明和使用常量 42
3.2.2 声明和使用变量 42
3.2.3 变量的作用域 43
3.3 运算符 43
3.3.1 算术运算符 44
3.3.2 字符串运算符和索引器 44
3.3.3 赋值运算符 45
3.3.4 逻辑运算符 45
3.3.5 位运算符 46
3.3.6 其他运算符 47
3.3.7 运算符的优先级 47
3.4 小结 47
4 程序的流程控制 48
4.1 流程控制 48
4.1.1 使用if语句实现分支 48
4.1.2 使用switch语句实现分支 50
4.1.3 使用while语句实现循环 51
4.1.4 使用for语句实现循环 52
4.1.5 使用break/continue控制循环 53
4.1.6 使用#define进行条件编译 54
4.2 程序的结构 54
4.2.1 用类搭建程序 55
4.2.2 使用命名空间 56
4.2.3 寻找程序的入口 57
4.3 异常处理 57
4.4 小结 58
5 C# 2008语言特色 59
5.1 var匿名类型 59
5.2 扩展方法 60
5.3 Lambda表达式 60
5.4 对象和集合的匿名初始化 61
5.5 匿名数组 62
5.6 表达式树 63
5.7 小结 63
第2篇 C#界面编程 65
6 与用户交互 65
6.1 菜单和工具栏 65
6.2 鼠标事件 67
6.3 键盘事件处理 68
6.4 通用对话框 68
6.5 编写多文档界面应用程序 70
6.6 进度条 72
6.7 PictureBox图片框控件 73
6.8 文本框控件与按钮控件 75
6.9 Windows窗体及事件 75
6.10 复选框和单选按钮 76
6.11 列表框 77
6.12 带复选框的列表框 78
6.13 小结 80
第3篇 C#对象编程 82
7 类 82
7.1 定义类 82
7.1.1 声明类 82
7.1.2 声明类的静态特征 83
7.1.3 声明类的动态行为 84
7.1.4 创建类实例 84
7.1.5 继承类 85
7.2 VS.NET中的OOP工具 85
7.2.1 使用类视图窗口 85
7.2.2 使用对象浏览器 86
7.3 属性详谈 87
7.3.1 域和属性 87
7.3.2 静态属性 88
7.3.3 重载属性 89
7.4 方法详谈 90
7.4.1 方法的参数 90
7.4.2 使用构造函数 91
7.4.3 使用析构函数 91
7.4.4 使用静态方法 92
7.4.5 重载方法 92
7.4.6 访问父类方法 93
7.5 小结 94
8 抽象类、多态及接口 96
8.1 抽象类 96
8.1.1 什么是抽象类 96
8.1.2 声明抽象类 97
8.1.3 实现抽象方法 99
8.2 多态 100
8.2.1 什么是多态 100
8.2.2 多态的实现 100
8.2.3 多态和重写 102
8.3 接口 102
8.3.1 什么是接口 102
8.3.2 声明接口 103
8.3.3 实现接口 104
8.4 小结 109
第4篇 C#数据操作 111
9 字符串操作 111
9.1 静态串String 111
9.1.1 比较字符串 111
9.1.2 定位字符和子串 114
9.1.3 格式化字符串 116
9.1.4 连接字符串 118
9.1.5 分裂字符串 118
9.1.6 插入和填充字符串 119
9.1.7 删除和剪切字符串 120
9.1.8 复制字符串 121
9.1.9 替换字符串 122
9.1.10 更改大小写 122
9.1.11 String小结 123
9.2 动态串StringBuilder 123
9.2.1 声明StringBuilder串 123
9.2.2 设置StringBuilder容量 124
9.2.3 追加操作 124
9.2.4 插入操作 125
9.2.5 删除操作 126
9.2.6 替换操作 126
9.2.7 与String比较 126
9.3 字符串编码 127
9.3.1 字符编码概述 127
9.3.2 使用字符编码类 127
9.4 使用正则表达式 128
9.4.1 正则表达式简介 128
9.4.2 使用Regex类 129
9.4.3 构造正则表达式 129
9.4.4 示例:验证URL 130
9.5 小结 130
10 数组 131
10.1 数组简介 131
10.1.1 数组的概念 131
10.1.2 多维数组 132
10.1.3 创建C#数组 133
10.2 使用数组 135
10.2.1 System.Array类 135
10.2.2 访问数组元素 135
10.2.3 遍历数组 135
10.2.4 同步数组 136
10.2.5 数组排序 138
10.2.6 查找数组 140
10.2.7 反转数组 142
10.2.8 复制数组 143
10.2.9 动态创建数组 144
10.2.10 综合示例 145
10.3 小结 154
11 集合与泛型 155
11.1 System.Collections命名空间 155
11.2 ArrayList数组集合类 155
11.2.1 创建列表 156
11.2.2 添加元素 157
11.2.3 插入元素 158
11.2.4 删除元素 158
11.2.5 简单排序 159
11.2.6 复杂排序 160
11.2.7 查找元素 162
11.2.8 遍历列表 163
11.3 Queue队列类 164
11.3.1 创建队列 164
11.3.2 元素入队 164
11.3.3 元素出队 165
11.4 Stack堆栈类 166
11.4.1 创建堆栈 166
11.4.2 元素入栈 166
11.4.3 元素出栈 167
11.5 Hashtable和SortedList 168
11.5.1 Hashtable 168
11.5.2 构造普通哈希表 168
11.5.3 SortedList 170
11.5.4 搜索排序哈希表 171
11.6 泛型简介 172
11.6.1 什么是泛型 172
11.6.2 一个泛型的示例 174
11.6.3 集合类的泛型版本 175
11.6.4 使用泛型的建议 176
11.7 小结 177
12 处理异常和错误 178
12.1 try/catch块 178
12.2 finally块 180
12.3 预定义异常的类 182
12.4 处理异常 185
12.4.1 处理多个异常 185
12.4.2 处理和传递异常 186
12.4.3 从异常中恢复 187
12.5 设计自己的异常 189
12.6 小结 190
13 文件和输入输出 191
13.1 文件 191
13.1.1 System.IO类介绍 191
13.1.2 文件类File 192
13.1.3 文件夹类Directory 196
13.1.4 文件信息类FileInfo 198
13.1.5 文件夹信息类DirectoryInfo 200
13.2 流 203
13.2.1 文件流类FileStream 203
13.2.2 流写入类StreamWriter 206
13.2.3 流读取类StreamReader 208
13.2.4 二进制流写入类BinaryWriter 209
13.2.5 二进制流读取类BinaryReader 210
13.3 小结 210
第5篇 C#数据库编程 212
14 ADO.NET 3.5数据库操作 212
14.1 ADO.NET概述 212
14.1.1 微软数据访问技术 212
14.1.2 System.Data命名空间 213
14.2 连接数据库 214
14.2.1 SqlConnection类 214
14.2.2 使用SqlConnectionStringBuilder构建连接字符串 215
14.2.3 关闭和释放SQL Server连接 216
14.2.4 创建到SQL Server 2005 Express的连接 217
14.2.5 使用连接池 219
14.3 与数据库交互 219
14.3.1 使用SqlCommand提交增、删、改命令 220
14.3.2 使用SqlCommand获取查询命令 221
14.3.3 使用DataAdapter提交查询命令 222
14.4 管理内存数据 224
14.4.1 了解数据集 224
14.4.2 使用DataTable实现内存表 225
14.4.3 使用DataSet管理数据 227
14.4.4 使用DataReader获取只读数据 234
14.4.5 比较DataSet和DataReader 239
14.5 小结 239
15 XML编程 240
15.1 .NET框架中的XML 240
15.1.1 理解XML 240
15.1.2 XML文档对象模型(DOM) 243
15.1.3 System.Xml命名空间 244
15.2 读取XML文档 246
15.2.1 使用XmlDocument读取XML 246
15.2.2 使用XmlReader读取XML 250
15.3 使用XPath检索XML 253
15.3.1 基本XPath表达式 254
15.3.2 限定检索范围 255
15.3.3 使用函数设置检索条件 255
15.3.4 使用运算符设置检索条件 256
15.3.5 使用通配符模糊匹配 257
15.3.6 综合示例 257
15.4 修改XML文档 258
15.4.1 创建新DOM节点 259
15.4.2 为DOM节点创建属性 260
15.4.3 修改DOM节点 261
15.5 与ADO.NET集成 264
15.5.1 使用DataSet加载XML数据 264
15.5.2 使用XmlDataDocument加载关系数据 267
15.6 小结 269
第6篇 .NET 3.5框架新特色 271
16 .NET 3.5框架新组件 271
16.1 .NET 3.5框架整体概览 271
16.1.1 .NET 3.5框架的组织结构 271
16.1.2 WPF创建新式Windows应用程序 272
16.1.3 WCF远程通信服务 272
16.1.4 WF轻松创建工作流 273
16.1.5 WCS身份标识验证 274
16.2 用WF制作订单状态管理工作流 275
16.2.1 订单状态管理工作流框架预览 275
16.2.2 创建订单状态管理工作流Windows服务 276
16.2.3 编译工作流服务 278
16.2.4 创建状态工作流 279
16.2.5 设置工作流的开始点和结束点 281
16.2.6 订单状态管理工作流的运行时引擎 283
16.3 使用WCF构建计算器服务模块 285
16.3.1 设计计算器服务契约 285
16.3.2 实现计算器服务契约 286
16.3.3 配置并发布计算器服务 287
16.3.4 配置WCF计算器服务的ABC 288
16.3.5 创建计算器的客户端代理服务 289
16.3.6 调用WCF计算器服务 290
16.4 小结 292
第7篇 C#网络编程 294
17 ASP.NET 3.5开发基础 294
17.1 什么是ASP.NET 3.5 294
17.1.1 ASP.NET 3.5概述 294
17.1.2 使用VS 2008创建ASP.NET应用程序 295
17.1.3 ASP.NET文件类型和目录结构 298
17.1.4 ASP.NET控件简介 299
17.2 ASP.NET服务器控件 301
17.2.1 标准服务器控件 301
17.2.2 验证控件 304
17.2.3 母版页 307
17.2.4 导航控件 311
17.2.5 外观和主题 319
17.2.6 登录控件 322
17.2.7 Web Part编程 331
17.3 ASP.NET 3.5应用程序状态管理 335
17.3.1 应用程序状态管理简介 335
17.3.2 ASP.NET视图状态(View State) 336
17.3.3 ASP.NET控件状态(Control State) 338
17.3.4 全局应用程序设置 341
17.3.5 全局缓存对象 343
17.3.6 会话级应用程序设置 344
17.3.7 使用Cookies 344
17.4 小结 345
18 ASP.NET 3.5数据库开发 346
18.1 一个数据库驱动的网站示例 346
18.1.1 显示订单列表 346
18.1.2 订单详细信息 352
18.1.3 订单明细页面 355
18.2 数据源控件 357
18.2.1 数据源控件简介 357
18.2.2 使用SqlDataSource控件 360
18.2.3 使用ObjectDataSource控件 368
18.2.4 使用LinqDataSource控件 371
18.2.5 LINQ查询语法 374
18.3 数据绑定控件 375
18.3.1 什么是数据绑定技术 375
18.3.2 列表控件 381
18.3.3 GridView控件 385
18.3.4 DetailsView控件 398
18.3.5 FormView控件 405
18.3.6 Repeater控件 407
18.3.7 DataList控件 408
18.3.8 ListView控件和DataPager控件 412
18.4 小结 415
19 应用程序部署 416
19.1 Windows Installer介绍 417
19.2 部署工程的建立 418
19.2.1 使用VS 2008安装向导 418
19.2.2 手动创建安装程序 420
19.3 使用安装项目编辑器 424
19.3.1 文件系统编辑器 424
19.3.2 注册表编辑器 424
19.3.3 文件类型编辑器 425
19.3.4 用户界面编辑器 427
19.3.5 自定义操作编辑器 429
19.3.6 启动条件编辑器 430
19.4 部署项目属性介绍 432
19.5 小结 434
第8篇 C#项目实战 436
20 在线考试系统 436
20.1 在线考试系统功能预览 436
20.2 数据库设计 437
20.2.1 数据库中各表结构 438
20.2.2 创建网站并映射表实体 440
20.3 整体布局设计 441
20.3.1 管理员用户控件 441
20.3.2 三层结构设计 443
20.4 考试科目 444
20.4.1 添加考试科目 444
20.4.2 维护考试科目 446
20.5 试题管理 451
20.5.1 添加单选题 451
20.5.2 维护单选题 455
20.5.3 添加多选题 459
20.5.4 维护多选题 463
20.5.5 添加填空题 466
20.5.6 维护填空题 469
20.5.7 添加判断题 472
20.5.8 维护判断题 475
20.6 试卷管理 478
20.6.1 制定试卷分数 478
20.6.2 维护试卷 483
20.7 用户管理 486
20.7.1 添加用户 486
20.7.2 维护用户 488
20.8 用户考试 491
20.8.1 用户登录 491
20.8.2 随机试卷 494
20.8.3 试卷答案 497
20.8.4 维护用户成绩 497
20.9 小结 499
21 小型企业网站管理系统 500
21.1 小型企业网站管理系统概述 500
21.1.1 小型企业网站管理系统简介 500
21.1.2 小型企业网站管理系统的安装 501
21.2 页面布局 502
21.2.1 MasterPage母版页 503
21.2.2 Web.sitemap导航地图 504
21.3 数据层 505
21.3.1 XML数据源 505
21.3.2 SQL Server数据源 506
21.3.3 数据层处理类的提供者Provider 507
21.3.4 数据库映射对象 509
21.4 业务处理层 509
21.5 目录管理 509
21.6 人员管理 511
21.7 新闻管理 513
21.8 用户体验 514
21.9 小结 515