第1章 数据库高级编程 1
1.1 为什么要用数据库 1
1.2 如何访问数据库——ADO.NET 1
1.2.1 如何连接数据库 1
1.2.2 如何查询数据 3
1.2.3 如何删除、添加、修改数据 7
1.3 其他的数据库编程方法——LINQ to SQL 14
1.3.1 如何连接数据库 14
1.3.2 如何查询数据库中的数据 15
1.3.3 如何删除数据库中的数据 18
1.3.4 如何向数据库中添加数据和更新数据 19
本章小结 22
本章实训 22
第2章 报表设计工具 23
2.1 为什么要用报表 23
2.2 怎样用传统方法进行报表设计——Crystal Reports 23
2.2.1 Crystal Reports具有哪些功能 23
2.2.2 如何用Crystal Reports制作简单报表 25
2.2.3 如何进行数据排序 28
2.2.4 如何使用公式与函数 29
2.2.5 如何进行报表分页 31
2.2.6 如何对数据进行分组 32
2.2.7 如何制作数据图表 34
2.2.8 如何处理报表对象 35
2.2.9 如何制作动态报表 36
2.3 更简捷的报表设计工具——RDLC 38
2.3.1 RDLC报表都具有什么功能 38
2.3.2 如何用RDLC制作简单报表 39
2.3.3 如何进行数据排序 43
2.3.4 如何使用公式与函数 43
2.3.5 如何对数据进行分组 44
2.3.6 如何制作数据图表 45
2.3.7 如何设置报表标题 46
2.3.8 如何制作动态报表 47
本章小结 49
本章实训 49
第3章 多线程高级编程 50
3.1 为什么要用多线程 50
3.2 如何令一个程序同时执行多个任务——线程 51
3.2.1 如何创建和开启线程 51
3.2.2 如何挂起和恢复线程 55
3.2.3 如何终止线程 56
3.2.4 如何实现线程同步 58
3.2.5 如何避免线程死锁 68
3.3 能否自动控制多个线程——线程池 69
3.3.1 线程池是怎样运作的 69
3.3.2 如何用线程池来创建和管理线程 70
本章小结 77
本章实训 77
第4章 网络高级编程 78
4.1 如何实现主机间同步通信 78
4.1.1 单播通信 78
4.1.2 广播通信 83
4.1.3 文件传输 87
4.2 如何实现主机间异步通信 94
4.3 如何与Web服务器通信 101
4.3.1 GET方法实现 101
4.3.2 POST方法实现 103
4.3.3 Socket类实现 106
4.4 如何与FTP服务器通信 109
4.5 如何与邮件服务器通信 113
本章小结 115
本章实训 115
第5章 系统架构 116
5.1 为什么要用架构 116
5.2 较大规模的数据库应用应采用什么架构——简单三层架构 116
5.2.1 如何进行数据访问层设计 118
5.2.2 如何进行数据访问通用类库设计 126
5.2.3 如何进行实体类库设计 128
5.2.4 如何进行业务逻辑层设计 131
5.2.5 如何进行表示层设计 133
5.3 比三层架构耦合度更低的架构——工厂模式三层架构 145
5.3.1 如何做到完全解耦 145
5.3.2 如何进行接口类库设计 147
5.3.3 如何进行工厂类库设计 148
5.3.4 如何修改其他层的代码 149
本章小结 150
本章实训 151
第6章 API编程基础 152
6.1 什么是API 152
6.2 为什么要用API 152
6.3 Windows API是做什么的 152
6.4 Windows API包括哪些功能 153
6.5 Windows API核心DLL有哪些 155
6.6 如何在C#中调用API函数 156
6.6.1 .Net中API函数调用机制 156
6.6.2 在C#中调用API函数 157
6.6.3 API函数调用实例——设置系统时间 158
本章小结 160
本章实训 160
第7章 辅助工具及技术 161
7.1 基于PowerDesigner设计数据库 161
7.1.1 PowerDesigner简介 161
7.1.2 从概念数据模型出发设计数据库 162
7.1.3 从物理数据模型出发设计数据库 170
7.1.4 反向工程 180
7.2 版本控制工具——Visual SourceSafe 184
7.2.1 Visual SourceSafe简介 184
7.2.2 Visual SourceSafe安装及配置 185
7.2.3 Visual SourceSafe客户端基本操作 190
7.2.4 用Visual SourceSafe进行源代码版本控制 197
本章小结 201
第8章 数据库应用实例——图书管理系统 202
8.1 系统分析与设计 202
8.1.1 需求分析 202
8.1.2 数据库设计 203
8.1.3 系统设计 205
8.2 系统实现 205
8.2.1 实体类库 205
8.2.2 数据访问层接口类库 206
8.2.3 数据访问层 208
8.2.4 工厂类库 210
8.2.5 业务逻辑层 212
8.2.6 表示层 214
本章小结 235
本章实训 235
第9章 多线程应用实例——贪吃蛇游戏 236
9.1 游戏规则分析 236
9.2 界面及类设计 236
9.2.1 游戏主界面设计 236
9.2.2 Block类设计 237
9.2.3 Snake类设计 237
9.2.4 Beans类设计 238
9.3 游戏实现 238
9.3.1 Block类 238
9.3.2 Snake类 239
9.3.3 Beans类 242
9.3.4 游戏主界面 243
本章小结 246
第10章 网络编程应用实例 247
10.1 背景知识 247
10.2 系统分析 248
10.3 系统设计 249
10.3.1 领域模型 249
10.3.2 顺序图 249
10.3.3 状态图 250
10.3.4 设计类 250
10.4 系统实现 253
10.5 测试 268
10.6 进一步思考 269
本章小结 270
第11章 Windows特效与系统控制实例 271
11.1 特效窗体与界面处理 271
11.1.1 创建圆形窗体 271
11.1.2 树形菜单界面 272
11.1.3 动画字幕 274
11.1.4 动画窗体显示 275
11.1.5 动态图形化按钮 277
11.1.6 带历史信息的菜单 278
11.1.7 半透明渐显窗体 281
11.2 图形图像处理 282
11.2.1 图像格式转换 282
11 2.2 图像特效处理程序 285
11.2.3 以任意角度旋转图像 289
11.2.4 为数码像片添加日期 292
11.3 系统消息处理、进程控制与系统设置 296
11.3.1 用Esc键关闭窗体 297
11.3.2 模拟鼠标操作 298
11.3.3 禁止关机 300
11.3.4 获取组合键与功能键 302
11.3.5 控制进程只能运行一个实例 303
11.3.6 设置屏幕分辨率 305
11.3.7 内存使用监控器 309
11.3.8 调用外部的应用程序 311
11.3.9 进程管理器 312
11.3.10 获取CPU和主板相关信息 315
本章小结 318
第12章 综合实例——开放式机房管理系统 319
12.1 项目描述 319
12.1.1 项目背景 319
12.1.2 业务描述 319
12.1.3 用户描述 319
12.2 系统需求 320
12.2.1 需求描述 321
12.2.2 用例规约 322
12.2.3 用例图 339
12.3 系统分析设计 342
12.3.1 领域模型 342
12.3.2 顺序图 344
12.3.3 设计类 371
12.3.4 数据库设计 375
12.3.5 界面设计 378
本章小结 399
参考文献 400