图书目录

目    录

第1篇  新 手 入 门

第1章  初探C#及其开发环境 2

 视频讲解:60分钟

1.1  了解.NET 3

1.1.1  .NET概述 3

1.1.2  .NET程序编译原理 3

1.1.3  .NET项目成功案例 4

1.2  C#语言及其特点 5

1.2.1  C#与.NET的关系 5

1.2.2  C#语言的特点 5

1.2.3  C#语言的发展趋势 5

1.3  安装与卸载Visual Studio 2010 5

1.3.1  安装Visual Studio 2010系统必备条件 6

1.3.2  安装Visual Studio 2010 6

1.3.3  卸载Visual Studio 2010 8

1.4  熟悉Visual Studio 2010开发环境 8

1.4.1  创建控制台应用程序 8

1.4.2  创建Windows窗体应用程序 9

1.4.3  菜单栏 10

1.4.4  工具栏介绍 10

1.4.5  "工具箱"面板 11

1.4.6  "属性"面板 11

1.4.7   解决方案资源管理器 11

1.4.8  "错误列表"面板 12

1.4.9  "输出"面板 12

1.5  C#编程常用帮助 12

1.5.1  安装Help Library管理器 13

1.5.2  使用Help Library管理器 13

1.5.3  常用的C#编程帮助网站 14

1.6  实战 15

1.6.1  如何开始运行程序 15

1.6.2  如何中断当前程序的运行 15

1.7  小结 16

1.8  学习成果检验 16

第2章  认识C#代码结构 17

 视频讲解:40分钟

2.1  定制自己的开发环境 18

2.1.1  设置代码字体和颜色 18

2.1.2  设置显示代码行号 18

2.1.3  灵活使用自动隐藏功能 19

2.2  编写第一个C#程序 19

2.3  分析C#程序结构 20

2.3.1  命名空间介绍 20

2.3.2  类 21

2.3.3  Main方法 21

2.3.4  标识符 22

2.3.5  关键字 22

2.3.6  编写C#语句 22

2.3.7  代码注释 23

2.4  实战 24

2.4.1  使用"记事本"编写C#程序并编译 24

2.4.2  如何快速找到程序出错位置 24

2.4.3  为程序设置版本和帮助信息 25

2.4.4  为项目添加已有窗体 26

2.4.5  动起来的Label控件 26

2.5  小结 27

2.6  学习成果检验 27

第3章  C#程序设计基础 28

 视频讲解:98分钟

3.1  数据类型 29

3.1.1  值类型的使用 29

3.1.2  引用类型的使用 31

3.2  声明并使用变量 32

3.2.1  变量的声明及初始化 32

3.2.2  变量的作用域 33

3.3  声明并使用常量 33

3.4  数据类型转换 34

3.4.1  隐式类型转换 34

3.4.2  显式类型转换 35

3.4.3  装箱和拆箱 36

3.5  运算符的使用 37

3.5.1  算术运算符 38

3.5.2  赋值运算符 39

3.5.3  关系运算符 40

3.5.4  逻辑运算符 42

3.5.5  移位运算符 44

3.5.6  其他特殊运算符 45

3.5.7  运算符的优先级 46

3.6  实战 47

3.6.1  制作用户登录程序 47

3.6.2  判断一个数是否是素数 48

3.6.3  使用算术运算符开发简单计算器 49

3.6.4  使用"^"运算符对数字进行加密 50

3.6.5  巧用位移运算符获取汉字编码值 51

3.6.6  使用条件运算符判断指定年份是不是

闰年 51

3.7  小结 52

3.8  学习成果检验 52

第4章  选择结构控制 53

 视频讲解:38分钟

4.1  C#程序设计算法 54

4.2  if语句的使用 56

4.2.1  使用if...else语句实现条件选择 56

4.2.2  if语句的嵌套使用 58

4.3  switch语句的使用 60

4.3.1  使用switch语句实现多分支选择 60

4.3.2  if...else语句与switch语句 61

4.4  实战 63

4.4.1  判断用户登录身份 63

4.4.2  递归算法的经典面试题 64

4.4.3  使用switch语句实现数字转换大写 65

4.4.4  使用流程控制语句报销业务花销 66

4.4.5  小明去学校和医院分别要走哪条路 66

4.5  小结 67

4.6  学习成果检验 67

第5章  循环结构控制 68

 视频讲解:48分钟

5.1  while和do...while语句的使用 69

5.1.1  使用while语句实现代码循环 69

5.1.2  使用do...while语句实现至少执行一次

循环 70

5.1.3  while和do...while语句的区别 71

5.2  for和foreach语句的使用 72

5.2.1  使用for语句实现代码循环 72

5.2.2  使用foreach语句遍历数据集合 73

5.3  循环结构中的跳转语句 74

5.3.1  使用break语句跳出循环 74

5.3.2  使用continue语句继续程序的执行 76

5.3.3  使用goto语句实现程序跳转 76

5.3.4  使用return语句使程序返回 78

5.4  实战 79

5.4.1  鸡尾酒排序算法的实现 79

5.4.2  哥德巴赫猜想算法的实现 80

5.4.3  使用switch语句更改窗体颜色 82

5.4.4  使用goto语句在数组中搜索指定图书 83

5.4.5  制作一个数字猜猜看小游戏 83

5.5  小结 85

5.6  学习成果检验 85

第6章  字符及字符串 86

 视频讲解:72分钟

6.1  字符操作 87

6.1.1  Char类概述 87

6.1.2  使用Char类中的方法对字符进行操作 87

6.1.3  认识并使用转义字符 88

6.2  字符串的声明及初始化 89

6.2.1  String类概述 89

6.2.2  声明字符串 90

6.2.3  初始化字符串 90

6.3  字符串操作 90

6.3.1  比较字符串 90

6.3.2  格式化字符串 92

6.3.3  截取字符串 94

6.3.4  分割字符串 94

6.3.5  插入和填充字符串 95

6.3.6  删除字符串 97

6.3.7  复制字符串 97

6.3.8  替换字符串 99

6.4  可变字符串类StringBuilder的使用 100

6.4.1  StringBuilder类概述 100

6.4.2  创建StringBuilder对象 100

6.4.3  StringBuilder类的使用 101

6.4.4  StringBuilder类与String类的区别 102

6.5  实战 102

6.5.1  长字符串分段显示 102

6.5.2  字符串加密与解密 103

6.5.3  根据汉字获得其区位码 104

6.5.4  字母与ASCII码的转换 105

6.5.5  将汉字转换为拼音 106

6.5.6  批量替换某一类字符串 106

6.5.7  开发一个进制转换器 106

6.6  小结 109

6.7  学习成果检验 109

第7章  数组、集合与哈希表 110

 视频讲解:96分钟

7.1  数组概述 111

7.2  一维数组的声明和使用 111

7.2.1  一维数组的声明 111

7.2.2  一维数组的使用 112

7.3  二维数组的声明和使用 113

7.3.1  二维数组的声明 113

7.3.2  二维数组的使用 113

7.3.3  动态数组的声明及使用 114

7.4  数组的基本操作 115

7.4.1  遍历数组中的元素 115

7.4.2  添加/删除数组元素 115

7.4.3  使用排序算法对数组进行排序 116

7.4.4  数组的合并与拆分 118

7.5  ArrayList集合的使用 120

7.5.1  ArrayList集合概述 120

7.5.2  添加ArrayList集合元素 121

7.5.3  删除ArrayList集合元素 123

7.5.4  遍历ArrayList集合 124

7.5.5  查找ArrayList集合元素 125

7.6  Hashtable(哈希表)的使用 126

7.6.1  Hashtable概述 126

7.6.2  添加Hashtable元素 126

7.6.3  删除Hashtable元素 127

7.6.4  遍历Hashtable元素 128

7.6.5  查找Hashtable元素 128

7.7  实战 129

7.7.1  使用数组解决约瑟夫环问题 129

7.7.2  希尔排序算法的实现 130

7.7.3  使用哈希表查找XML文件 131

7.7.4  操作便捷的简单电话簿 132

7.7.5  向班级集合中添加学生信息 133

7.7.6  设计一个简单客车售票记录程序 134

7.8  小结 135

7.9  学习成果检验 135

第8章  面向对象程序设计 136

 视频讲解:96分钟

8.1  面向对象编程概述 137

8.2  属性的定义及使用 137

8.2.1  属性概述 138

8.2.2  属性的定义 138

8.2.3  属性的使用 139

8.3  方法的声明及使用 140

8.3.1  方法概述 140

8.3.2  方法修饰符 140

8.3.3  方法的声明 141

8.3.4  方法的分类 142

8.3.5  重载方法的实现 142

8.4  结构的定义及使用 143

8.4.1  结构概述 143

8.4.2  结构的定义 144

8.4.3  结构的使用 144

8.5  类与对象详解 145

8.5.1  类的概念 145

8.5.2  类的声明 146

8.5.3  构造函数和析构函数 146

8.5.4  对象的声明和实例化 147

8.5.5  类与对象的关系 149

8.6  面向对象特性之封装 149

8.6.1  封装概述 149

8.6.2  封装的实现 150

8.7  面向对象特性之继承 151

8.7.1  继承概述 151

8.7.2  继承的实现 151

8.7.3  单继承的使用 153

8.7.4  多重继承的使用 154

8.8  面向对象特性之多态 156

8.8.1  多态概述 156

8.8.2  多态的实现 157

8.9  实战 159

8.9.1  使用面向对象思想实现简单计算器 159

8.9.2  使用面向对象思想实现在字符串中查找

数字 160

8.9.3  通过类的多态性确定人类的说话行为 161

8.9.4  存储不同类型的数据列表 162

8.9.5  去掉数组中的重复数字 162

8.10  小结 163

8.11  学习成果检验 163

第9章  综合实验(一)--365桌面

提醒器 164

 视频讲解:78分钟

9.1  365桌面提醒器概述 165

9.1.1  提醒设置流程 165

9.1.2  计划录入流程 165

9.1.3  计划查询流程 165

9.1.4  计划统计流程 166

9.1.5  定时关机流程 166

9.1.6  程序预览 167

9.2  数据库设计 168

9.3  关键技术 168

9.3.1  通过修改注册表实现自动运行程序 168

  

9.3.2  使用多线程处理弹出"提示气泡"

任务 170

9.3.3  使用扩展方法为系统类型添加新功能 171

9.3.4  应用初始化器创建集合或对象 171

9.3.5  使用ADO.NET对象提交数据 172

9.4  公共类设计 172

9.4.1  封装数据值和显示值的类 172

9.4.2  绑定和显示数据的类 173

9.5  提醒设置 174

9.5.1  提醒设置功能概述 174

9.5.2  "提醒设置"界面设计 174

9.5.3  打开"提醒设置"界面 174

9.5.4  保存提示设置 175

9.6  计划录入 176

9.6.1  计划录入功能概述 176

9.6.2  "计划录入"界面设计 176

9.6.3  打开"计划录入"界面 177

9.6.4  添加计划任务 177

9.6.5  保存计划任务 178

9.6.6  删除计划任务 179

9.7  计划查询 180

9.7.1  计划查询功能概述 180

9.7.2  "计划查询"界面设计 180

9.7.3  打开"计划查询"界面 180

9.7.4  查询计划信息 181

9.7.5  处理计划 182

9.8  计划统计 183

9.8.1  计划统计功能概述 183

9.8.2  "计划统计"界面设计 183

9.8.3  统计计划信息 184

9.9  小结 184

9.10  学习成果检验 184

第2篇  进 阶 提 高

第10章  Windows窗体设计 186

 视频讲解:60分钟

10.1  Form窗体基础 187

10.1.1  Form窗体概述 187

10.1.2  添加和删除Form窗体 187

10.1.3  添加多窗体 188

10.1.4  设置窗体的属性 189

10.1.5  窗体的显示与隐藏 191

10.1.6  触发窗体事件 191

10.2  MDI窗体设计 192

10.2.1  MDI窗体概述 192

10.2.2  设置MDI窗体 193

10.2.3  排列MDI子窗体 193

10.3  继承窗体设计 195

10.3.1  继承窗体概述 195

10.3.2  创建继承窗体 195

10.3.3  在继承窗体中修改继承的控件属性 197

10.4  实战 198

10.4.1  设计一个系统登录窗体 198

10.4.2  制作启动欢迎界面 198

10.4.3  从上次关闭位置启动窗体 199

10.4.4  自定义"最大化"、"最小化"和

"关闭"按钮 200

10.4.5  制作鼠标穿透窗体 202

10.4.6  窗体换肤程序 202

10.5  小结 204

10.6  学习成果检验 204

第11章  Windows应用程序常用控件 205

 视频讲解:120分钟

11.1  控件概述 206

11.1.1  控件的分类及作用 206

11.1.2  控件命名规范 207

11.2  控件的相关操作 207

11.2.1  添加控件 207

11.2.2  对齐控件 208

11.2.3  锁定控件 208

11.2.4  删除控件 208

11.3  文本类控件 208

11.3.1  标签控件 209

11.3.2  按钮控件 209

11.3.3  文本框控件 210

11.3.4  有格式文本控件 212

11.4  选择类控件 214

11.4.1  下拉组合框控件 215

11.4.2  复选框控件 216

11.4.3  单选按钮控件 217

11.4.4  数值选择控件 218

11.4.5  列表控件 219

11.5  分组控件 221

11.5.1  容器控件 222

11.5.2  分组框控件 222

11.5.3  选项卡控件 223

11.6  实战 225

11.6.1  判断注册用户操作权限 225

11.6.2  使用ListBox实现点菜功能 228

11.6.3  只允许输入数字的TextBox控件 230

11.6.4  实现类似Word的项目编号功能 230

11.6.5  在RichTextBox控件中实现关键字描红 231

11.6.6  对ListBox控件中的数据进行排序 231

11.7  小结 232

11.8  学习成果检验 232

第12章  Windows应用程序高级控件 233

 视频讲解:125分钟

12.1  存储图像控件(ImageList控件) 234

12.1.1  在ImageList控件中添加图像 234

12.1.2  在ImageList控件中移除图像 234

12.2  列表视图控件(ListView控件) 235

12.2.1  在ListView控件中添加/移除项 236

12.2.2  选择ListView控件中的项 237

12.2.3  为ListView控件中的项添加图标 238

12.2.4  在ListView控件中启用平铺视图 238

12.2.5  为ListView控件中的项分组 239

12.3  树控件(TreeView控件) 241

12.3.1  添加和删除树节点 241

12.3.2  获取树控件中选中的节点 242

12.3.3  为树控件中的节点设置图标 243

12.4  日期控件(DateTimePicker控件) 244

12.4.1  使用DateTimePicker控件显示时间 244

12.4.2  使用DateTimePicker控件以自定义格式

显示日期 244

12.4.3  返回DateTimePicker控件中选择的

日期 245

12.5  月历控件(MonthCalendar控件) 246

12.5.1  更改MonthCalendar控件的外观 246

12.5.2  在MonthCalendar控件中显示多个

月份 247

12.5.3  在MonthCalendar控件中以粗体显示

特定日期 247

12.5.4  在MonthCalendar控件中选择日期

范围 248

12.6  其他高级控件 249

12.6.1  使用ErrorProvider控件验证文本框

输入 249

12.6.2  使用HelpProvider控件调用帮助文件 250

12.6.3  使用Timer控件设置时间间隔 251

12.6.4  使用ProgressBar控件显示程序运行进

度条 252

12.7  实战 252

12.7.1  设计一个电子万年历 252

12.7.2  制作一个闹钟计时器 254

12.7.3  在模式窗口中显示进度条 257

12.7.4  使用TreeView控件遍历磁盘目录 259

12.7.5  用树型列表动态显示菜单 260

12.8  小结 261

12.9  学习成果检验 261

第13章  对话框、菜单、工具栏及状态栏

控件 262

 视频讲解:48分钟

13.1  对话框控件 263

13.1.1  对话框概述 263

13.1.2  打开对话框控件 263

13.1.3  另存为对话框控件 263

13.1.4  浏览文件夹对话框控件 264

13.1.5  颜色对话框控件 265

13.1.6  字体对话框控件 265

13.2  菜单、工具栏和状态栏控件 266

13.2.1  菜单控件(MenuStrip控件) 266

13.2.2  工具栏控件(ToolStrip控件) 266

13.2.3  状态栏控件(StatusStrip控件) 267

13.3  实战 268

13.3.1  制作带历史信息的菜单 268

13.3.2  制作仿XP系统的任务栏菜单 269

13.3.3  具有提示功能的工具栏 271

13.3.4  级联菜单的动态合并 271

13.3.5  在状态栏中显示当前系统操作员 272

13.4  小结 272

13.5  学习成果检验 272

第14章  综合实验(二)--QQ自动

登录器模块 273

 视频讲解:62分钟

14.1  QQ自动登录器概述 274

14.1.1  QQ自动登录器流程 274

14.1.2  主窗体流程 274

14.1.3  添加QQ账号流程 274

14.1.4  路径设置流程 275

14.1.5  程序预览 275

14.2  数据库设计 275

14.3  关键技术 276

14.3.1  QQ自动登录器的实现原理 276

14.3.2  使用MD5加密算法加密QQ密码 276

14.3.3  使用XML文件存储QQ账号信息 277

14.3.4  使用XmlElement类序列化QQ账号

属性 278

14.3.5  通过XML文件读取和写入QQ账号

信息 279

14.3.6  使用注册表存储信息 281

14.4  主窗体 281

14.4.1  主窗体功能概述 281

14.4.2  主窗体界面设计 281

14.4.3  初始化QQ列表 282

14.4.4  启动多个QQ账号 283

14.4.5  启动QQ程序 284

14.4.6  增加QQ账号信息 285

14.4.7  修改QQ账号信息 285

14.4.8  删除QQ账号 286

14.4.9  设置QQ账号为隐身 286

14.5  添加QQ账号 287

14.5.1  添加QQ账号功能概述 287

14.5.2  添加QQ账号界面设计 287

14.5.3  添加QQ账号 287

14.6  路径设置 289

14.6.1  路径设置功能概述 289

14.6.2  路径设置界面设计 289

14.6.3  显示原有路径设置 289

14.6.4  选择QQ程序路径 290

14.6.5  保存路径设置 290

  

14.7  小结 291

14.8  学习成果检验 291

第3篇  中 级 开 发

第15章  数据库编程基础 294

 视频讲解:56分钟

15.1  数据库基础 295

15.1.1  数据库简介 295

15.1.2  安装SQL Server 2000数据库 295

15.1.3  安装SQL Server 2005数据库 297

15.1.4  安装SQL Server 2008数据库 299

15.1.5  数据库的创建及删除 304

15.1.6  数据表的创建及删除 304

15.2  SQL语言基础 306

15.2.1  SQL语言简介 306

15.2.2  简单SQL语句的应用 306

15.3  实战 311

15.3.1  使用INSERT SELECT语句批量

插入数据 311

15.3.2  从一个表中向另一个表中复制行 311

15.3.3  统计某个值出现的次数 312

15.3.4  对多列的求和运算 313

15.3.5  通过CASE语句生成静态交叉表 314

15.4  小结 314

15.5  学习成果检验 314

第16章  ADO.NET数据访问技术 315

 视频讲解:90分钟

16.1  ADO.NET概述 316

16.2  使用Connection对象连接数据库 316

16.2.1  Connection对象概述 316

16.2.2  连接数据库 316

16.2.3  关闭连接 317

16.3  使用Command对象执行SQL

语句 319

16.3.1  Command对象概述 319

16.3.2  设置数据源类型 319

16.3.3  执行SQL语句 320

16.4  使用DataReader对象读取数据 322

16.4.1  DataReader对象概述 322

16.4.2  判断查询结果中是否有值 323

16.4.3  读取数据 324

16.5  数据适配器:DataAdapter对象 324

16.5.1  DataAdapter对象概述 324

16.5.2  填充DataSet数据集 325

16.5.3  更新数据源 325

16.6  数据集:DataSet对象 327

16.6.1  DataSet对象概述 327

16.6.2  合并DataSet内容 327

16.6.3  复制DataSet内容 328

16.7  实战 329

16.7.1  使用二进制存储用户头像 329

16.7.2  使用存储过程实现员工自动编号 332

16.7.3  使用交叉表统计商品销售信息 333

16.7.4  向SQL Server数据库中批量写入海量

数据 336

16.7.5  使用断开式连接批量更新数据库中的

数据 337

16.7.6  综合查询职工详细信息 337

16.8  小结 340

16.9  学习成果检验 340

第17章  DataGridView数据控件 341

 视频讲解:52分钟

17.1  DataGridView控件概述 342

17.2  在DataGridView控件中显示数据 342

17.3  获取DataGridView控件中的当前

单元格 343

17.4  在DataGridView控件中修改数据 344

17.5  选中DataGridView控件中的行时

显示不同颜色 345

17.6  禁止在DataGridView控件中添加和

删除行 347

17.7  禁用DataGridView控件的自动排序

功能 347

17.8  合并DataGridView控件中的单

元格 348

17.9  实战 350

17.9.1  将DataGridView中的数据导出到

Word 350

17.9.2  将DataGridView中的数据导出到

Excel 351

17.9.3  在DataGridView控件中验证数据

输入 352

17.9.4  在DataGridView控件中添加"合计"和

"平均值" 353

17.9.5  通过DataGridView分页查看用户信息 354

17.10  小结 356

17.11  学习成果检验 356

第18章  面向对象编程高级技术 357

 视频讲解:48分钟

18.1  接口的声明及实现 358

18.1.1  接口概述 358

18.1.2  接口的声明 358

18.1.3  接口的实现与继承 359

18.1.4  显式接口成员实现 360

18.2  抽象类的声明及使用 362

18.2.1  抽象类概述 362

18.2.2  抽象类的声明 362

18.2.3  抽象方法的声明 362

18.2.4  抽象类的使用 363

18.2.5  抽象类与接口 364

18.3  密封类的声明及使用 364

18.3.1  密封类概述 364

18.3.2  密封类的声明 365

18.3.3  密封方法的声明 365

18.3.4  密封类的使用 366

18.4  实战 367

18.4.1  使用多重继承实现教师和学生信息的

输出 367

18.4.2  对用户信息进行密封 369

18.4.3  自定义抽象类计算圆形的面积 371

18.4.4  利用接口实现选择不同的语言 371

18.4.5  使用接口作为方法参数进行编程 372

18.4.6  通过重写虚方法实现加法运算 373

18.5  小结 373

18.6  学习成果检验 373

第19章  枚举类型与泛型 374

 视频讲解:30分钟

19.1  枚举类型 375

19.1.1  枚举类型概述 375

19.1.2  枚举类型的声明 375

19.1.3  枚举类型基类--Enum类 376

19.1.4  枚举类型的使用 377

19.2  泛型及其使用 378

19.2.1  泛型概述 378

19.2.2  类型参数T 378

19.2.3  泛型接口的声明及使用 379

19.2.4  泛型方法的声明及使用 379

19.3  实战 380

19.3.1  使用枚举判断用户操作权限 380

19.3.2  使用泛型去掉数组中的重复数字 381

19.3.3  使用迭代器显示公交车站点 383

19.3.4  使用分部类实现多种计算方法 383

19.3.5  通过继承泛型类实现输出学生信息 384

19.4  小结 385

19.5  学习成果检验 385

第20章  LINQ技术的使用 386

 视频讲解:76分钟

20.1  LINQ基础 387

20.1.1  LINQ概述 387

20.1.2  使用var创建隐型局部变量 387

20.1.3  Lambda表达式的使用 388

20.1.4  LINQ查询表达式 389

20.2  LINQ操作SQL Server数据库 390

20.2.1  使用LINQ查询SQL Server数据库 390

20.2.2  使用LINQ管理SQL Server数据库 393

20.3  LINQ操作其他数据 398

20.3.1  使用LINQ操作数组和集合 398

20.3.2  使用LINQ操作DataSet数据集 399

20.3.3  使用LINQ操作XML 400

20.4  实战 403

20.4.1  使用LINQ技术获取文件详细信息 403

20.4.2  使用LINQ技术分类查询公司员工

薪水 405

20.4.3  使用存储过程查询单表数据 406

20.4.4  使用LINQ技术防止SQL注入式攻击 407

20.4.5  使用LINQ技术实现数据分页 407

20.4.6  从头开始提取满足指定条件的记录 409

20.4.7  读取XML文件并更新到数据库 409

20.5  小结 411

20.6  学习成果检验 411

第21章  综合实验(三)--SQL数据表

提取器模块 412

 视频讲解:54分钟

21.1  SQL数据表提取器概述 413

21.1.1  附加本地数据库流程 413

21.1.2  提取表结构流程 413

21.1.3  导出数据流程 413

21.1.4  程序预览 414

21.2  关键技术 415

21.2.1  添加COM组件 415

21.2.2  附加SQL Server数据库 415

21.2.3  分离SQL Server数据库 416

21.2.4  设置SQL Server数据库模式 416

  

21.3  主窗体 418

21.3.1  主窗体功能概述 418

21.3.2  主窗体界面设计 418

21.3.3  检索网络中的服务器 419

21.3.4  获取数据库的名称 419

21.3.5  选择提取信息 421

21.4  附加本地数据库 422

21.4.1  附加本地数据库功能概述 422

21.4.2  附加本地数据库界面设计 422

21.4.3  浏览附加文件路径 423

21.4.4  实现数据库附加 423

21.5  提取表结构 424

21.5.1  提取表结构功能概述 424

21.5.2  "提取表结构"界面设计 424

21.5.3  获取表结构信息 425

21.5.4  导出到Excel 425

21.5.5  导出到Word 426

21.6  导出数据 427

21.6.1  导出数据功能概述 427

21.6.2  "导出数据"界面设计 428

21.6.3  获取数据信息 428

21.6.4  数据的导出 429

21.7  小结 431

21.8  学习成果检验 431

第4篇  高 级 应 用

第22章  文件及I/O 434

 视频讲解:112分钟

22.1  文件操作基础 435

22.1.1  File类和FileInfo类介绍 435

22.1.2  Directory类和DirectoryInfo类介绍 438

22.2  文件基本操作 440

22.2.1  判断文件是否存在 440

22.2.2  创建文件 441

22.2.3  复制文件 442

22.2.4  移动文件 442

22.2.5  删除文件 443

22.2.6  获取文件基本信息 443

22.3  文件夹基本操作 444

22.3.1  判断文件夹是否存在 444

22.3.2  创建文件夹 445

22.3.3  移动文件夹 445

22.3.4  删除文件夹 446

22.3.5  遍历文件夹 446

22.4  I/O(输入/输出) 448

22.4.1  流概述 448

22.4.2  文件I/O流介绍 449

22.4.3  使用I/O流操作文本文件 450

22.4.4  使用I/O流操作二进制文件 452

22.5  实战 454

22.5.1  文件批量重命名的实现 454

22.5.2  制作一个分割与合并文件工具 457

22.5.3  根据日期动态建立文件 460

22.5.4  复制文件时显示复制进度 460

22.5.5  伪装文件夹 462

22.5.6  对指定文件夹中的文件进行分类存储 463

22.6  小结 464

22.7  学习成果检验 464

第23章  GDI+绘图及打印技术 465

 视频讲解:70分钟

23.1  GDI+绘图基础 466

23.1.1  GDI+概述 466

23.1.2  创建Graphics对象 466

23.1.3  创建Pen对象 467

23.1.4  创建Brush对象 467

23.2  基本图形绘制 469

23.2.1  绘制直线和矩形 469

23.2.2  绘制椭圆、圆弧和扇形 470

23.2.3  绘制多边形 472

23.2.4  绘制文本 472

23.2.5  绘制图形 473

23.3  Windows打印组件的使用 473

23.3.1  使用PageSetupDialog组件设置打印

文档信息 473

23.3.2  使用PrintDialog组件显示打印对

话框 474

23.3.3  使用PrintDocument组件设置打印

文档 475

23.3.4  使用PrintPreviewControl组件设置打印

预览文档 476

23.3.5  使用PrintPreviewDialog组件显示打印

预览 477

23.4  实战 477

23.4.1  应用GDI+技术实现图像的水印效果 477

23.4.2  应用GDI+技术实现批量图像格式

转换 480

23.4.3  抓取网站整页面 484

23.4.4  打造自己的开心农场 487

23.4.5  使用打印组件打印商品入库单信息 489

23.5  小结 491

23.6  学习成果检验 491

第24章  网络编程 492

 视频讲解:110分钟

24.1  计算机网络基础 493

24.1.1  局域网与因特网介绍 493

24.1.2  网络协议介绍 493

24.1.3  端口及套接字介绍 495

24.2  网络编程基础 496

24.2.1  System.Net命名空间及相关类的

使用 496

24.2.2  System.Net.Sockets命名空间及相关类

的使用 501

24.2.3  System.Net.Mail命名空间及相关类的

使用 506

24.3  实战 509

24.3.1  创建Web页面浏览器 509

24.3.2  设计点对点聊天程序 510

24.3.3  电子邮件的发送与接收 512

24.3.4  获取网络信息及流量 516

24.3.5  远程关闭与重启计算机 517

24.4  小结 518

24.5  学习成果检验 518

第25章  线程的使用 519

 视频讲解:84分钟

25.1  线程概述 520

25.1.1  线程的定义与分类 520

25.1.2  多线程的使用 521

25.1.3  线程的生命周期 521

25.2  C#中的线程类Thread 522

25.3  线程调度 524

25.3.1  创建线程 524

25.3.2  线程的挂起与恢复 525

25.3.3  线程休眠 526

25.3.4  终止线程 526

25.3.5  线程的优先级 527

25.4  线程同步 529

25.4.1  线程同步机制 529

25.4.2  使用lock关键字实现线程同步 529

25.4.3  使用Monitor驱动对象实现线程同步 530

25.4.4  使用Mutex类实现线程同步 531

25.5  实战 532

25.5.1  使用多线程制作端口扫描工具 532

25.5.2  使用线程控制向窗体中拖放图片并

显示 535

25.5.3  使用线程扫描局域网IP地址 538

25.5.4  使用线程制作小游戏 539

25.5.5  有进度条的文件异步复制功能 540

25.6  小结 542

25.7  学习成果检验 542

第26章  异常处理与程序调试 543

 视频讲解:36分钟

26.1  异常处理与程序调试概述 544

26.2  异常处理语句的使用 544

26.2.1  使用throw语句抛出异常 544

26.2.2  使用try...catch语句捕捉异常 545

26.2.3  使用try...catch...finally语句捕捉异常 546

26.3  常用的程序调试操作 547

26.3.1  断点操作 547

26.3.2  开始、中断和停止程序的执行 548

26.3.3  单步执行 549

26.3.4  运行到指定位置 550

26.4  实战 550

26.4.1  使用异常处理语句捕获数据库连接

异常 550

26.4.2  通过插入断点查看局部变量的值 551

26.5  小结 552

26.6  学习成果检验 552

第27章  Windows应用程序打包部署 553

 视频讲解:20分钟

27.1  Windows Installer介绍 554

27.2  创建Windows安装项目 554

27.3  制作Windows安装程序 555

27.3.1  添加项目输出 555

27.3.2  添加内容文件 555

27.3.3  创建桌面快捷方式 556

27.3.4  添加注册表项 556

27.3.5  生成Windows安装程序 557

27.4  部署Windows应用程序 558

27.5  实战 559

27.5.1  为Windows安装程序添加程序组 559

27.5.2  使用"发布"部署Windows应用

程序 560

27.6  小结 561

27.7  学习成果检验 561

第28章  综合实验(四)--FTP文件

管理模块 562

 视频讲解:60分钟

28.1  FTP文件管理模块概述 563

28.1.1  FTP登录流程 563

28.1.2  本机文件操作流程 563

28.1.3  服务器文件上传/下载流程 563

28.1.4  程序预览 564

28.2  关键技术 564

28.2.1  架设FTP服务器 564

28.2.2  登录FTP服务器 566

28.2.3  获取服务器上文件的大小 567

28.2.4  向FTP服务器发送命令 568

28.2.5  调用系统API 569

28.3  主窗体设计 569

28.3.1  主窗体功能概述 569

28.3.2  主窗体界面设计 570

28.4  FTP登录 570

28.4.1  FTP登录功能概述 570

28.4.2  登录FTP服务器 571

28.5  本机文件操作 573

28.5.1  本机文件操作功能概述 573

28.5.2  获取本地磁盘 573

28.5.3  获取指定磁盘中的文件 574

28.5.4  批量上传文件 575

28.6  服务器文件上传/下载 579

28.6.1  服务器文件上传/下载功能概述 579

28.6.2  获取FTP服务器中的所有文件 579

28.6.3  批量下载文件 581

28.6.4  删除FTP中的文件或文件夹 584

28.7  小结 586

  

28.8  学习成果检验 586

  

第5篇  项 目 实 战

第29章  进销存管理系统 588

 视频讲解:100分钟

29.1  需求分析 589

29.2  系统设计 589

29.2.1  系统目标 589

29.2.2  系统功能结构 589

29.2.3  系统业务流程图 589

29.2.4  文件组织结构 589

29.3  系统运行环境 590

29.4  数据库与数据表设计 590

29.4.1  数据库分析 590

29.4.2  数据表设计 591

29.4.3  数据表逻辑关系 592

29.5  公共类设计 593

29.5.1  DataBase公共类 593

29.5.2  BaseInfo公共类 596

29.6  登录模块设计 600

29.6.1  登录模块概述 600

29.6.2  登录模块实现原理 600

29.6.3  登录模块实现过程 600

29.7  系统主窗体设计 601

29.7.1  系统主窗体概述 601

29.7.2  使用MenuStrip控件设计菜单栏 602

29.7.3  系统主窗体实现过程 602

29.8  库存商品管理模块设计 603

29.8.1  库存商品管理模块概述 603

29.8.2  自动生成库存商品编号 603

29.8.3  库存商品管理模块实现过程 603

29.9  进货管理模块设计 607

29.9.1  进货管理模块概述 607

29.9.2  向进货单中批量添加商品 607

29.9.3  进货管理模块实现过程 608

29.10  商品销售排行模块设计 612

29.10.1  商品销售排行模块概述 612

29.10.2  使用BETWEEN...AND关键字查询

数据 612

29.10.3  商品销售排行模块实现过程 612

29.11  库存盘点模块设计 614

29.11.1  库存盘点模块概述 614

29.11.2  隔离驱动模式的使用 614

29.11.3  库存盘点模块实现过程 614

29.12  系统打包部署 616

29.13  小结 618

第30章  企业人事管理系统 619

 视频讲解:130分钟

30.1  系统分析 620

30.1.1  需求分析 620

30.1.2  可行性分析 620

30.1.3  编写项目计划书 621

30.2  系统设计 622

30.2.1  系统目标 622

30.2.2  系统功能结构 623

30.2.3  系统业务流程图 623

30.2.4  系统编码规范 624

30.3  系统运行环境 624

30.4  数据库与数据表设计 624

30.4.1  数据库分析 624

30.4.2  数据表设计 625

30.4.3  数据表逻辑关系 626

30.5  公共类设计 627

30.5.1  MyMeans公共类 628

30.5.2  MyModule公共类 629

30.6  登录模块设计 640

30.6.1  设计登录窗体 641

30.6.2  按Enter键时移动鼠标焦点 641

30.6.3  登录功能的实现 641

30.7  系统主窗体设计 642

30.7.1  设计菜单栏 642

30.7.2  设计工具栏 643

30.7.3  设计导航菜单 644

30.7.4  设计状态栏 644

30.8  人事档案管理模块设计 645

30.8.1  设计"人事档案管理"窗体 646

30.8.2  添加/修改人事档案信息 647

30.8.3  删除人事档案信息 649

30.8.4  单条件查询人事档案信息 649

30.8.5  逐条查看人事档案信息 651

30.8.6  将人事档案信息导出为Word

文档 653

30.9  人事资料查询模块设计 657

30.9.1  设计"人事资料查询"窗体 657

30.9.2  多条件查询人事资料 658

30.10  通讯录模块设计 659

30.10.1  设计"通讯录"窗体 659

30.10.2  添加/修改通讯录信息 659

30.10.3  删除通讯录信息 661

30.10.4  查询通讯录信息 661

30.11  用户设置模块设计 662

30.11.1  设计"用户设置"窗体 662

30.11.2  添加/修改用户信息 663

30.11.3  删除用户基本信息 664

30.11.4  设置用户操作权限 665

30.12  开发中常见问题与解决 665

30.12.1  程序无法运行 665

30.12.2  无法添加职工基本信息 665

30.12.3  选择职工头像时出现异常 666

30.12.4  出现Word引用问题 667

  

30.12.5  COM选项卡中没有Word 9.0

引用 667

30.13  小结 667

附录A  菜单栏命令 668

附录B  C#程序编码规范 671

B.1  命名规则 671

B.1.1  数据类型简写规则 671

B.1.2  变量及对象名称命名规则 671

B.1.3  类命名规则 671

B.1.4  属性命名规则 672

B.1.5  方法命名规则 672

B.1.6  接口命名规则 672

B.1.7  控件命名规则 672

B.2  代码版式 673

B.2.1  统一代码缩进 673

B.2.2  合理使用空行 673

B.2.3  代码换行 673

B.2.4  空格的使用 673

B.3  代码注释 674

B.3.1  注释的目的 674

B.3.2  代码注释规范 674

B.4  数据库编程命名规范 674

B.4.1  数据库命名规范 674

B.4.2  数据表命名规范 675

B.4.3  字段命名规范 675

B.4.4  视图命名规范 675

B.4.5  存储过程命名规范 675

B.4.6  触发器命名规范 676

  

  

    C#开发实战

  

目    录        

  

VI

  

  

IX