第1部分 新手入门 3
第1章 初探C#及其开发环境 3
1.1了解.NET 4
1.1.1.NET概述 4
1.1.2.NET程序编译原理 5
1.1.3.NET项目成功案例 6
1.2 C#语言及其特点 6
1.2.1 C#与.NET的关系 6
1.2.2 C#语言特点 7
1.2.3 C#语言发展趋势 7
1.3安装与卸载Visual Studio 2008 8
1.3.1安装Visual Studio 2008系统必备 8
1.3.2安装Visual Studio 2008 9
1.3.3卸载Visual Studio 2008 10
1.4熟悉Visual Studio 2008开发环境 11
1.4.1创建控制台应用程序 11
1.4.2创建Windows应用程序 12
1.4.3菜单栏介绍 12
1.4.4工具栏介绍 14
1.4.5“工具箱”面板介绍 14
1.4.6“属性”面板介绍 15
1.4.7解决方案资源管理器介绍 15
1.5 C#编程常用帮助 16
1.5.1安装MSDN 16
1.5.2使用MSDN 18
1.5.3 C#编程词典的使用 19
1.5.4常用的C#编程帮助网站 20
1.6实战 20
1.6.1如何开始运行程序 21
1.6.2如何中断当前程序的运行 21
1.7小结 21
1.8实战练习 22
第2章 认识C#代码结构 23
2.1定制自己的开发环境 24
2.1.1设置代码字体和颜色 24
2.1.2设置显示代码行号 24
2.1.3灵活使用自动隐藏功能 25
2.2编写第一个C#程序 25
2.3分析C#程序结构 26
2.3.1命名空间介绍 27
2.3.2类的介绍 28
2.3.3 Main方法的使用 28
2.3.4认识标识符 29
2.3.5认识关键字 29
2.3.6编写C#语句 29
2.3.7代码注释 30
2.4实战 31
2.4.1使用“记事本”编写C#程序并编译 31
2.4.2如何快速找到程序出错位置 32
2.5小结 33
2.6实战练习 33
第3章C#程序设计基础 35
3.1数据类型 36
3.1.1值类型的使用 36
3.1.2引用类型的使用 38
3.2声明并使用变量 39
3.2.1变量的声明及初始化 40
3.2.2变量的作用域 41
3.3声明并使用常量 41
3.4数据类型转换 42
3.4.1隐式类型转换 42
3.4.2显式类型转换 43
3.4.3装箱和拆箱 44
3.5运算符的使用 46
3.5.1算术运算符 46
3.5.2赋值运算符 48
3.5.3关系运算符 49
3.5.4逻辑运算符 52
3.5.5移位运算符 54
3.5.6其他特殊运算符 55
3.5.7运算符的优先级 57
3.6实战 57
3.6.1制作用户登录程序 57
3.6.2判断一个数是否是素数 58
3.7小结 59
3.8实战练习 60
第4章 选择结构控制 61
4.1 C#程序设计算法 62
4.2 if语句的使用 64
4.2.1使用if...else语句实现条件选择 64
4.2.2 if语句的嵌套使用 67
4.3 switch语句的使用 69
4.3.1使用switch语句实现多分支选择 69
4.3.2 if...else语句与switch语句 71
4.4实战 73
4.4.1判断用户登录身份 73
4.4.2递归算法的经典面试题 75
4.5小结 76
4.6实战练习 76
第5章 循环结构控制 77
5.1 while和do...while语句的使用 78
5.1.1使用while语句实现代码循环 78
5.1.2使用do...while语句实现至少执行一次循环 80
5.1.3 while和do...while语句的区别 81
5.2 for和foreach语句的使用 81
5.2.1使用for语句实现代码循环 81
5.2.2使用foreach语句遍历数据集合 83
5.3循环结构中的跳转语句 84
5.3.1使用break语句跳出循环 85
5.3.2使用continue语句继续程序的执行 87
5.3.3使用goto语句实现程序跳转 88
5.3.4使用return语句使程序返回 90
5.4实战 91
5.4.1鸡尾酒排序算法的实现 91
5.4.2哥德巴赫猜想算法的实现 93
5.5小结 95
5.6实战练习 95
第6章 字符及字符串 97
6.1字符操作 98
6.1.1 Char类概述 98
6.1.2使用Char类中的方法对字符进行操作 98
6.1.3认识并使用转义字符 100
6.2字符串的声明及初始化 101
6.2.1 String类概述 101
6.2.2声明字符串 101
6.2.3初始化字符串 102
6.3字符串操作 102
6.3.1比较字符串 102
6.3.2格式化字符串 104
6.3.3截取字符串 106
6.3.4分割字符串 107
6.3.5插入和填充字符串 108
6.3.6删除字符串 110
6.3.7复制字符串 111
6.3.8替换字符串 112
6.4可变字符串类StringBuilder的使用 114
6.4.1 StringBuilder类概述 114
6.4.2创建StringBuilder对象 114
6.4.3 StringBuilder类的使用 115
6.4.4 StringBuilder类与String类的区别 116
6.5实战 116
6.5.1长字符串分段显示 116
6.5.2字符串加密与解密 117
6.5.3根据汉字获得其区位码 119
6.6小结 120
6.7实战练习 120
第7章 数组、集合与哈希表 121
7.1数组概述 122
7.2一维数组的声明和使用 122
7.2.1一维数组的声明 122
7.2.2一维数组的使用 123
7.3二维数组的声明和使用 124
7.3.1二维数组的声明 124
7.3.2二维数组的使用 125
7.3.3动态数组的声明及使用 126
7.4数组的基本操作 127
7.4.1遍历数组中的元素 127
7.4.2添加/删除数组元素 128
7.4.3使用排序算法对数组进行排序 128
7.4.4数组的合并与拆分 131
7.5 ArrayList集合的使用 134
7.5.1 ArrayList集合概述 134
7.5.2添加ArrayList集合元素 135
7.5.3删除ArrayList集合元素 137
7.5.4遍历ArrayList集合 139
7.5.5查找ArrayList集合元素 139
7.6 Hashtable(哈希表)的使用 141
7.6.1 Hashtable概述 141
7.6.2添加Hashtable元素 142
7.6.3删除Hashtable元素 142
7.6.4遍历Hashtable 143
7.6.5查找Hashtable元素 144
7.7实战 145
7.7.1使用数组解决约瑟夫环问题 145
7.7.2希尔排序算法的实现 147
7.7.3使用哈希表查找XML文件 148
7.8小结 150
7.9实战练习 150
第8章 面向对象程序设计 151
8.1面向对象编程概述 152
8.2属性的定义及使用 153
8.2.1属性概述 153
8.2.2属性的定义 153
8.2.3属性的使用 154
8.3方法的声明及使用 156
8.3.1方法概述 156
8.3.2方法修饰符 156
8.3.3方法的声明 157
8.3.4方法的分类 157
8.3.5重载方法的实现 159
8.4结构的定义及使用 160
8.4.1结构概述 160
8.4.2结构的定义 160
8.4.3结构的使用 161
8.5类与对象详解 162
8.5.1类的概念 162
8.5.2类的声明 162
8.5.3构造函数和析构函数 163
8.5.4对象的声明和实例化 164
8.5.5类与对象的关系 166
8.6面向对象特性之封装 167
8.6.1封装概述 167
8.6.2封装的实现 167
8.7面向对象特性之继承 169
8.7.1继承概述 169
8.7.2继承的实现 169
8.7.3单继承的使用 172
8.7.4多重继承的使用 173
8.8面向对象特性之多态 175
8.8.1多态概述 175
8.8.2多态的实现 175
8.9实战 178
8.9.1使用面向对象思想实现简单计算器 178
8.9.2使用面向对象思想实现在字符串中查找数字 179
8.10小结 180
8.11实战练习 180
第9章Windows窗体设计 181
9.1 Form窗体基础 182
9.1.1 Form窗体概述 182
9.1.2添加和删除Form窗体 182
9.1.3添加多窗体 183
9.1.4设置窗体的属性 184
9.1.5窗体的显示与隐藏 187
9.1.6触发窗体事件 187
9.2 MDI窗体设计 189
9.2.1 MDI窗体概述 189
9.2.2设置MDI窗体 190
9.2.3排列MDI子窗体 191
9.3继承窗体设计 193
9.3.1继承窗体概述 193
9.3.2创建继承窗体 193
9.3.3在继承窗体中修改继承的控件属性 195
9.4实战 196
9.4.1设计一个系统登录窗体 196
9.4.2制作启动欢迎界面 197
9.5小结 198
9.6实战练习 198
第10章Windows应用程序常用控件 199
10.1控件概述 200
10.1.1控件的分类及作用 200
10.1.2控件命名规范 201
10.2控件的相关操作 201
10.2.1添加控件 201
10.2.2对齐控件 202
10.2.3锁定控件 203
10.2.4删除控件 203
10.3文本类控件 203
10.3.1标签控件 203
10.3.2按钮控件 204
10.3.3文本框控件 206
10.3.4有格式文本控件 208
10.4选择类控件 211
10.4.1下拉组合框控件 211
10.4.2复选框控件 213
10.4.3单选按钮控件 215
10.4.4数值选择控件 216
10.4.5列表控件 218
10.5分组控件 221
10.5.1容器控件 221
10.5.2分组框控件 222
10.5.3选项卡控件 222
10.6实战 226
10.6.1判断注册用户操作权限 226
10.6.2使用ListBox实现点菜功能 230
10.7小结 231
10.8实战练习 231
第11章Windows应用程序高级控件 233
11.1存储图像控件(ImageList控件) 234
11.1.1在ImageList控件中添加图像 234
11.1.2在ImageList控件中移除图像 235
11.2列表视图控件(ListView控件) 236
11.2.1在ListView控件中添加/移除项 237
11.2.2选择ListView控件中的项 239
11.2.3为ListView控件中的项添加图标 239
11.2.4在ListView控件中启用平铺视图 240
11.2.5为ListView控件中的项分组 241
11.3树控件(TreeView控件) 243
11.3.1添加和删除树节点 243
11.3.2获取树控件中选中的节点 245
11.3.3为树控件中的节点设置图标 246
11.4日期控件(DateTimePicker控件) 247
11.4.1使用DateTimePicker控件显示时间 248
11.4.2使用DateTimePicker控件以自定义格式显示日期 249
11.4.3返回DateTimePicker控件中选择的日期 250
11.5月历控件(MonthCalendar控件) 251
11.5.1更改MonthCalendar控件的外观 251
11.5.2在MonthCalendar控件中显示多个月份 252
11.5.3在MonthCalendar控件中以粗体显示特定日期 253
11.5.4在MonthCalendar控件中选择日期范围 253
11.6其他高级控件 254
11.6.1使用ErrorProvider控件验证文本框输入 254
11.6.2使用HelpProvider控件调用帮助文件 256
11.6.3使用Timer控件设置时间间隔 257
11.6.4使用ProgressBar控件显示程序运行进度条 258
11.7实战 259
11.7.1设计一个电子万年历 259
11.7.2制作一个闹钟计时器 261
11.7.3在模式窗口中显示进度条 265
11.8小结 268
11.9实战练习 268
第12章 对话框、菜单、工具栏及状态栏控件 269
12.1对话框控件 270
12.1.1对话框概述 270
12.1.2打开对话框控件 270
12.1.3另存为对话框控件 271
12.1.4浏览文件夹对话框控件 272
12.1.5颜色对话框控件 273
12.1.6字体对话框控件 274
12.2菜单、工具栏和状态栏控件 275
12.2.1菜单控件(MenuStrip控件) 275
12.2.2工具栏控件(ToolStrip控件) 276
12.2.3状态栏控件(StatusStrip控件) 277
12.3实战 278
12.3.1制作带历史信息的菜单 278
12.3.2制作仿XP系统的任务栏菜单 280
12.4小结 282
12.5实战练习 282
第13章 数据库编程基础 283
13.1数据库基础 284
13.1.1数据库简介 284
13.1.2安装SQL Server 2000数据库 284
13.1.3安装SQL Server 2005数据库 287
13.1.4数据库的创建及删除 291
13.1.5数据表的创建及删除 292
13.2 SQL语言基础 293
13.2.1 SQL语言简介 293
13.2.2简单SQL语句的应用 293
13.3实战 299
13.3.1使用Insert Select语句批量插入数据 299
13.3.2从一个表中向另一个表中复制行 300
13.4小结 301
13.5实战练习 301
第14章ADO.ET数据访问技术 303
14.1 ADO.NET概述 304
14.2使用Connection对象连接数据库 304
14.2.1 Connection对象概述 304
14.2.2连接数据库 304
14.2.3关闭连接 306
14.3使用Command对象执行SQL语句 308
14.3.1 Command对象概述 308
14.3.2设置数据源类型 308
14.3.3执行SQL语句 309
14.4使用DataReader对象读取数据 312
14.4.1 DataReader对象概述 312
14.4.2判断查询结果中是否有值 312
14.4.3读取数据 313
14.5数据适配器:DataAdapter对象 314
14.5.1 DataAdapter对象概述 314
14.5.2填充DataSet数据集 315
14.5.3更新数据源 316
14.6数据集:DataSet对象 317
14.6.1 DataSet对象概述 317
14.6.2合并DataSet内容 318
14.6.3复制DataSet内容 319
14.7实战 320
14.7.1使用二进制存储用户头像 320
14.7.2使用存储过程实现员工自动编号 323
14.7.3使用交叉表统计商品销售信息 325
14.8小结 328
14.9实战练习 329
第15章DataGridView数据控件 331
15.1 DataGridView控件概述 332
15.2在DataGridView控件中显示数据 332
15.3获取DataGridView控件中的当前单元格 333
15.4在DataGridView控件中修改数据 334
15.5选中DataGridView控件中的行时显示不同颜色 336
15.6 禁止在DataGridView控件中添加和删除行 338
15.7 禁用DataGridView控件的自动排序功能 338
15.8合并DataGridView控件中的单元格 339
15.9实战 341
15.9.1将DataGridView中的数据导出到Word 341
15.9.2将DataGridView中的数据导出到Excel 343
15.10小结 345
15.11实战练习 345
第2部分 高手进阶 349
第16章 面向对象编程高级技术 349
16.1接口的声明及实现 350
16.1.1接口概述 350
16.1.2接口的声明 350
16.1.3接口的实现与继承 351
16.1.4显式接口成员实现 353
16.2抽象类的声明及使用 354
16.2.1抽象类概述 355
16.2.2抽象类的声明 355
16.2.3抽象方法的声明 355
16.2.4抽象类的使用 356
16.2.5抽象类与接口 357
16.3密封类的声明及使用 358
16.3.1密封类概述 358
16.3.2密封类的声明 358
16.3.3密封方法的声明 359
16.3.4密封类的使用 359
16.4实战 361
16.4.1使用多重继承实现教师和学生信息的输出 361
16.4.2对用户信息进行密封 363
16.5小结 365
16.6实战练习 366
第17章枚举类型与泛型 367
17.1枚举类型 368
17.1.1枚举类型概述 368
17.1.2枚举类型的声明 368
17.1.3枚举类型基类——Enum类 369
17.1.4枚举类型的使用 371
17.2泛型及其使用 372
17.2.1泛型概述 372
17.2.2类型参数T 372
17.2.3泛型接口的声明及使用 372
17.2.4泛型方法的声明及使用 374
17.3实战 375
17.3.1使用枚举判断用户操作权限 375
17.3.2使用泛型去掉数组中的重复数字 376
17.4小结 378
17.5实战练习 378
第18章LINQ技术的使用 379
18.1 LINQ基础 380
18.1.1 LINQ概述 380
18.1.2使用var创建隐型局部变量 380
18.1.3 Lambda表达式的使用 381
18.1.4 LINQ查询表达式 382
18.2 LINQ操作SQL Server数据库 384
18.2.1使用LINQ查询SQL Server数据库 384
18.2.2使用LINQ管理SQL Server数据库 388
18.3 LINQ操作其他数据 394
18.3.1使用LINQ操作数组和集合 394
18.3.2使用 LINQ操作DataSet数据集 395
18.3.3使用LINQ操作XML 397
18.4实战 401
18.4.1使用LINQ技术获取文件详细信息 401
18.4.2使用LINQ技术分类查询公司员工薪水 403
18.5小结 405
18.6实战练习 405
第19章 文件及I/O 407
19.1文件操作基础 408
19.1.1 File类和FileInfo类介绍 408
19.1.2 Directory类和DirectoryInfo类介绍 412
19.2文件基本操作 414
19.2.1判断文件是否存在 414
19.2.2创建文件 415
19.2.3复制文件 416
19.2.4移动文件 417
19.2.5删除文件 417
19.2.6获取文件基本信息 418
19.3文件夹基本操作 419
19.3.1判断文件夹是否存在 419
19.3.2创建文件夹 420
19.3.3移动文件夹 420
19.3.4删除文件夹 421
19.3.5遍历文件夹 422
19.4 I/O(输入/输出) 424
19.4.1流概述 424
19.4.2文件I/O流介绍 425
19.4.3使用I/O流操作文本文件 426
19.4.4使用I/O流操作二进制文件 429
19.5实战 431
19.5.1文件批量重命名的实现 431
19.5.2制作一个分割与合并文件工具 434
19.6小结 438
19.7实战练习 438
第20章GDI+绘图技术 439
20.1 GDI+绘图基础 440
20.1.1 GDI+概述 440
20.1.2创建Graphics对象 440
20.1.3创建Pen对象 441
20.1.4创建Brush对象 441
20.2基本图形绘制 443
20.2.1绘制直线和矩形 444
20.2.2绘制椭圆、圆弧和扇形 446
20.2.3绘制多边形 448
20.2.4绘制文本 449
20.2.5绘制图形 450
20.3实战 450
20.3.1应用GDI+技术实现图像的水印效果 450
20.3.2应用GDI+技术实现批量图像格式转换 454
20.4小结 458
20.5实战练习 459
第21章 水晶报表与打印 461
21.1水晶报表概述 462
21.1.1水晶报表概述 462
21.1.2水晶报表工作区介绍 462
21.2水晶报表数据源和数据访问模式 463
21.2.1 Visual Studio 2008中水晶报表数据源列举 463
21.2.2水晶报表的数据访问模式 464
21.3水晶报表基本操作 464
21.3.1创建水晶报表并连接数据源 464
21.3.2水晶报表中数据的分组与排序 467
21.3.3水晶报表中数据的筛选 468
21.3.4在水晶报表中使用图表 471
21.3.5在水晶报表中创建子报表 472
21.4 Windows打印组件的使用 473
21.4.1使用PageSetupDialog组件设置打印文档信息 474
21.4.2使用PrintDialog组件显示打印对话框 475
21.4.3使用PrintDocument组件设置打印文档 476
21.4.4使用PrintPreviewControl组件设置打印预览文档 477
21.4.5使用PrintPreviewDialog组件显示打印预览 478
21.5实战 479
21.5.1设计一个信封标签报表 479
21.5.2使用打印组件打印商品入库单信息 479
21.6小结 482
21.7实战练习 482
第22章 网络编程 483
22.1计算机网络基础 484
22.1.1局域网与因特网介绍 484
22.1.2网络协议介绍 484
22.1.3端口及套接字介绍 487
22.2网络编程基础 488
22.2.1 System.Net命名空间及相关类的使用 488
22.2.2 System.Net.Sockets命名空间及相关类的使用 494
22.2.3 System.Net.Mail命名空间及相关类的使用 500
22.3实战 503
22.3.1创建 Web页面浏览器 503
22.3.2设计点对点聊天程序 504
22.3.3电子邮件的发送与接收 507
22.4小结 512
22.5实战练习 512
第23章 线程的使用 513
23.1线程概述 514
23.1.1线程的定义与分类 514
23.1.2多线程的使用 515
23.1.3线程的生命周期 516
23.2 C#中的线程类Thread 517
23.3线程调度 519
23.3.1创建线程 519
23.3.2线程的挂起与恢复 520
23.3.3线程休眠 521
23.3.4终止线程 521
23.3.5线程的优先级 523
23.4线程同步 525
23.4.1线程同步机制 525
23.4.2使用lock关键字实现线程同步 525
23.4.3使用Monitor驱动对象实现线程同步 526
23.4.4使用Mutex类实现线程同步 527
23.5实战 529
23.5.1使用多线程制作端口扫描工具 529
23.5.2使用线程控制向窗体中拖放图片并显示 533
23.6小结 536
23.7实战练习 536
第24章 异常处理与程序调试 537
24.1异常处理与程序调试概述 538
24.2异常处理语句的使用 538
24.2.1使用throw语句抛出异常 539
24.2.2使用try...catch语句捕捉异常 540
24.2.3使用try...catch...finally语句捕捉异常 541
24.3常用的程序调试操作 542
24.3.1断点操作 542
24.3.2开始、中断和停止程序的执行 544
24.3.3单步执行 545
24.3.4运行到指定位置 546
24.4实战 546
24.4.1使用异常处理语句捕获数据库连接异常 546
24.4.2通过插入断点查看局部变量的值 547
24.5小结 548
24.6实战练习 548
第25章Windows应用程序打包部署 549
25.1 Windows Installer介绍 550
25.2创建Windows安装项目 550
25.3制作Windows安装程序 551
25.3.1添加项目输出 552
25.3.2添加内容文件 552
25.3.3创建桌面快捷方式 553
25.3.4添加注册表项 554
25.3.5生成Windows安装程序 556
25.4部署Windows应用程序 556
25.5实战 557
25.5.1为Windows安装程序添加程序组 557
25.5.2使用“发布”部署Windows应用程序 559
25.6小结 560
25.7实战练习 560
第3部分 项目实战 563
第26章 企业QQ系统 563
26.1系统分析 564
26.1.1需求分析 564
26.1.2可行性分析 564
26.1.3编写项目计划书 565
26.2系统设计 567
26.2.1系统目标 567
26.2.2系统功能结构 567
26.2.3系统业务流程图 567
26.2.4系统编码规范 568
26.3系统运行环境 569
26.4数据库与数据表设计 569
26.4.1数据库分析 569
26.4.2数据表概念设计 570
26.5创建项目 570
26.6公共类库设计 571
26.6.1 UDPSocket控件 572
26.6.2 Publec_Class类 575
26.6.3 ClassForms类 575
26.6.4 ClassMsg类 576
26.6.5 ClassOptionData类 577
26.6.6 ClassSerializers类 578
26.6.7 ClassUserInfo类 579
26.6.8 ClassUsers类 579
26.6.9 cVideo类 580
26.7客户端注册模块设计 581
26.7.1设计客户端注册窗体 581
26.7.2将注册信息发送到服务器端 582
26.7.3将注册信息写入到INI文件中 582
26.8客户端登录模块设计 583
26.8.1设计客户端登录窗体 584
26.8.2判断注册的INI文件是否存在 584
26.8.3登录功能的实现 585
26.8.4将登录信息发送到服务器端 586
26.9客户端QQ模块设计 586
26.9.1设计客户端QQ窗体 587
26.9.2加载注册用户列表 587
26.10客户端消息发送模块设计 593
26.10.1设计客户端消息发送窗体 593
26.10.2消息发送功能的实现 594
26.10.3在线视频功能的实现 595
26.11服务器端控制台模块设计 599
26.11.1设计服务器端控制台窗体 599
26.11.2开始服务功能的实现 599
26.11.3显示用户信息及在线状态 600
26.12运行项目 602
26.13系统打包部署 603
26.14开发常见问题与解决 607
26.14.1程序运行时出现对象引用错误 607
26.14.2单击“登录”按钮后没有反应 607
26.14.3出现套接字错误 607
26.14.4打包程序时出现错误 608
26.15 小结 608
第27章 餐饮管理系统 609
27.1系统分析 610
27.2系统设计 610
27.2.1系统目标 610
27.2.2系统功能结构 610
27.2.3系统业务流程图 611
27.3系统运行环境 611
27.4数据库与数据表设计 611
27.4.1数据库分析 612
27.4.2数据表设计 612
27.5创建项目 614
27.6公共类设计 614
27.7登录模块设计 615
27.8系统主窗体设计 615
27.9开台模块设计 616
27.10点菜模块设计 616
27.11结账模块设计 617
27.12小结 617
第28章 房屋中介管理系统 619
28.1系统分析 620
28.2系统设计 620
28.2.1系统目标 620
28.2.2系统功能结构 620
28.2.3系统业务流程图 620
28.3系统运行环境 622
28.4数据库与数据表设计 622
28.4.1数据库分析 622
28.4.2数据表设计 623
28.4.3视图设计 625
28.4.4存储过程设计 626
28.4.5触发器设计 628
28.5创建项目 629
28.6公共类设计 630
28.7系统主窗体设计 630
28.8 用户信息管理模块设计 631
28.9房源信息设置模块设计 631
28.10房源信息查询模块设计 632
28.11房源状态查询模块设计 632
28.12员工信息设置模块设计 633
28.13小结 633
第29章 企业人事管理系统 635
29.1系统分析 636
29.1.1需求分析 636
29.1.2可行性分析 636
29.1.3编写项目计划书 637
29.2系统设计 639
29.2.1系统目标 639
29.2.2系统功能结构 639
29.2.3系统业务流程图 639
29.2.4系统编码规范 641
29.3系统运行环境 641
29.4数据库与数据表设计 641
29.4.1数据库分析 642
29.4.2创建数据库 642
29.4.3创建数据表 644
29.4.4数据表逻辑关系 647
29.5创建项目 649
29.6公共类设计 650
29.6.1 MyMeans公共类 650
29.6.2 MyModule公共类 652
29.7登录模块设计 667
29.7.1设计登录窗体 667
29.7.2按Enter键时移动鼠标焦点 667
29.7.3登录功能的实现 668
29.8系统主窗体设计 669
29.8.1设计菜单栏 669
29.8.2设计工具栏 670
29.8.3设计导航菜单 671
29.8.4设计状态栏 672
29.9人事档案管理模块设计 673
29.9.1设计人事档案管理窗体 674
29.9.2添加/修改人事档案信息 676
29.9.3删除人事档案信息 678
29.9.4单条件查询人事档案信息 679
29.9.5逐条查看人事档案信息 681
29.9.6将人事档案信息导出为Word文档 683
29.10人事资料查询模块设计 687
29.10.1设计人事资料查询窗体 688
29.10.2多条件查询人事资料 689
29.11通讯录模块设计 689
29.11.1设计通讯录窗体 690
29.11.2添加/修改通讯录信息 690
29.11.3删除通讯录信息 692
29.11.4查询通讯录信息 693
29.12用户设置模块设计 694
29.12.1设计用户设置窗体 694
29.12.2添加/修改用户信息 694
29.12.3删除用户基本信息 696
29.12.4设置用户操作权限 697
29.13数据库维护模块设计 698
29.13.1设计备份/还原数据库窗体 698
29.13.2备份数据库 698
29.13.3还原数据库 699
29.14运行项目 701
29.15系统打包部署 702
29.16开发常见问题与解决 702
29.16.1程序无法运行 702
29.16.2无法添加职工基本信息 703
29.16.3选择职工头像时出现异常 704
29.16.4数据库还原不成功 704
29.16.5出现Word引用问题 704
29.16.6 COM选项卡中没有Word 9.0引用 705
29.16.7使用全名声明Word对象后还出现错误 705
29.17小结 709
第30章 进销存管理系统 711
30.1系统分析 712
30.2系统设计 712
30.2.1系统目标 712
30.2.2系统功能结构 712
30.2.3系统业务流程图 712
30.3系统运行环境 714
30.4数据库与数据表设计 714
30.4.1数据库分析 714
30.4.2数据表设计 715
30.4.3数据表逻辑关系 717
30.5创建项目 718
30.6公共类设计 718
30.7登录模块设计 719
30.8系统主窗体设计 719
30.9基础数据管理模块设计 720
30.10进货管理模块设计 720
30.11商品销售排行模块设计 721
30.12库存状况管理模块设计 721
30.13库存盘点模块设计 721
30.14小结 722
附录A菜单栏命令 723
附录B C#程序编码规范 727
B.1命名规则 727
B.1.1数据类型简写规则 727
B.1.2变量及对象名称命名规则 727
B.1.3类命名规则 728
B.1.4属性命名规则 728
B.1.5方法命名规则 728
B.1.6接口命名规则 728
B.1.7控件命名规则 729
B.2代码版式 729
B.2.1统一代码缩进 729
B.2.2合理使用空行 730
B.2.3代码换行 730
B.2.4空格的使用 730
B.3代码注释 730
B.3.1注释的目的 730
B.3.2代码注释规范 731
B.4数据库编程命名规范 731
B.4.1数据库命名规范 731
B.4.2数据表命名规范 731
B.4.3字段命名规范 732
B.4.4视图命名规范 732
B.4.5存储过程命名规范 732
B.4.6触发器命名规范 733