产品特色
             
     编辑推荐
      “软件开发视频大讲堂”丛书系清华社“视频大讲堂”重点大系之一。该大系包括多个子系列,每个子系列的图书在其同品种的图书中销售名列前茅,其中:
  
  ◆绝大多数品种在“全国计算机零售图书排行榜”同品种排行中名列前茅
  ◆截至目前该大系累计销售超过55万册
  “软件开发视频大讲堂”系列作为清华社“视频大讲堂”大系的子系列之一,继承和创新了清华社“视频大讲堂”大系的编写模式、写作风格和优良品质。本书突出了以下内容:
  ◆总长总时长42小时同步视频演示讲解,可反复观摩,让学习更为快捷、高效
  ◆891个典型实例,通过实例学习更深入,更有趣,更有动力
  ◆15道面试真题,了解工作实例及面试问题,更好适应企业需求
  ◆616项能力测试题目,检测是否过关,了解学习之不足。
  ◆根据全国计算机零售图书排行榜,本书已经连续8月VB类全国零售排行前2名
  “软件开发视频大讲堂”系列作为清华社“视频大讲堂”大系的子系列之一,执着于专业,精细于品质:
  ◆集基础知识、核心技能、高级应用、项目案例于一体
  ◆好学、好用、高效
      内容简介
     《Visual Basic从入门到精通(第3版)》从初学者的角度出发,以通俗易懂的语言、丰富多彩的实例,详细介绍了使用Visual Basic进行程序开发需要掌握的知识。全书共分22章,包括初识Visual Basic 6.0,VB语言基础,算法和程序控制结构,数组的声明和应用,过程的创建和使用,内置函数与API函数,窗体和系统对象,标准模块和类模块,常用标准控件,菜单、工具栏和状态栏,对话框,常用ActiveX控件,鼠标键盘处理,程序调试和错误处理,文件系统编程,图形图像技术,多媒体技术,SQL应用,数据库开发技术,数据库控件,网络编程技术以及企业进销存管理系统。另外,本书除了纸质内容之外,配书光盘中还给出了海量开发资源库,主要内容如下:
  ◆语音视频讲解:总时长42小时,共142段
  ◆实例资源库:891个实例及源码详细分析
  ◆模块资源库:15个经典模块开发过程完整展现
  ◆项目案例资源库:15个企业项目开发过程完整展现
  ◆测试题库系统:616道能力测试题目
  本书适合作为软件开发入门者的自学用书,也适合作为高等院校相关专业的教学参考书,也可供开发人员查阅、参考。
  
     目录
   第1篇 基础知识 
第1章 初识Visual Basic 6.0 2 
视频讲解:1小时26分钟 
1.1 Visual Basic简介 3 
1.1.1 Visual Basic的发展 3 
1.1.2 Visual Basic 6.0的特点 3 
1.2 如何学好VB 4 
1.2.1 VB可以做什么 4 
1.2.2 学习VB的几点建议 5 
1.3 VB 6.0的安装与管理 5 
1.3.1 VB 6.0的运行环境 5 
1.3.2 VB 6.0+SP6的安装 6 
1.3.3 VB 6.0的更改或删除 8 
1.4 VB 6.0的启动 9 
1.4.1 通过“开始”菜单启动 9 
1.4.2 通过快捷方式启动 9 
1.5 VB 6.0的集成开发环境 11 
1.5.1 集成开发环境简介 11 
1.5.2 菜单栏 12 
1.5.3 工具栏 14 
1.5.4 工具箱 15 
1.5.5 工程资源管理器 17 
1.5.6 属性窗口 18 
1.5.7 窗体布局窗口 19 
1.5.8 窗体设计器 20 
1.5.9 代码编辑窗口 20 
1.6 定制开发环境 21 
1.6.1 设置在编辑器中要求变量声明 21 
1.6.2 设置网格大小和不对齐到网格 22 
1.6.3 设置启动时保存 22 
1.6.4 定制工具栏 23 
1.6.5 为代码编辑器设置鼠标滚动 24 
1.7 VB 6.0的帮助系统 25 
1.7.1 MSDN Library的安装与使用 25 
1.7.2 利用附带的实例源程序学习编程 27 
1.7.3 使用VB的帮助菜单 28 
1.8 创建第一个VB程序 28 
1.8.1 创建工程文件 28 
1.8.2 设计界面 29 
1.8.3 编写代码 29 
1.8.4 调试运行 30 
1.8.5 保存工程 30 
1.8.6 编译程序 31 
1.9 小结 31 
1.10 练习与实践 31 
第2章 VB语言基础 32 
 视频讲解:29分钟 
2.1 关键字和标识符 33 
2.2 数据类型 33 
2.2.1 基本数据类型 34 
2.2.2 记录类型 37 
2.2.3 枚举类型 39 
2.3 变量 39 
2.3.1 什么是变量 40 
2.3.2 变量的命名 40 
2.3.3 变量的声明 41 
2.3.4 变量的作用域 43 
2.3.5 静态变量 44 
2.3.6 变量同名问题的处理 45 
2.3.7 变量的生命周期 46 
2.4 常量 46 
2.4.1 常量的声明 46 
2.4.2 局部常量和全局常量 47 
2.5 运算符和表达式 47 
2.5.1 运算符 47 
2.5.2 表达式 49 
2.5.3 运算符的优先级 50 
2.6 代码编写规则 50 
2.6.1 对象命名规则 50 
2.6.2 代码书写规则 52 
2.6.3 处理关键字冲突 53 
2.6.4 代码注释规则 53 
2.7 小结 55 
2.8 练习与实践 55 
第3章 算法和程序控制结构 56 
 视频讲解:59分钟 
3.1 算法 57 
3.1.1 什么是算法 57 
3.1.2 算法的特性 58 
3.1.3 算法的描述方法 58 
3.1.4 构成算法的基本控制结构 60 
3.2 顺序结构 63 
3.2.1 赋值语句 63 
3.2.2 数据的输入 65 
3.2.3 数据的输出 66 
3.3 选择结构 68 
3.3.1 单分支If…Then语句 68 
3.3.2 双分支If...Then...Else语句 70 
3.3.3 If语句的嵌套 71 
3.3.4 多分支If…Then…ElseIf语句 74 
3.3.5 Select Case语句 76 
3.3.6 IIf函数 77 
3.4 循环结构 78 
3.4.1 For…Next循环语句 78 
3.4.2 For Each…Next循环语句 81 
3.4.3 Do…Loop循环语句 82 
3.4.4 嵌套循环 86 
3.4.5 选择结构与循环结构的嵌套 87 
3.5 其他辅助控制语句 88 
3.5.1 跳转语句GoTo 88 
3.5.2 复用语句With...End With 89 
3.5.3 退出语句Exit 89 
3.5.4 结束语句End 90 
3.6 小结 91 
3.7 练习与实践 91 
第4章 数组的声明和应用 92 
 视频讲解:26分钟 
4.1 数组的概述 93 
4.1.1 数组的概念 93 
4.1.2 数组与简单变量的区别 94 
4.2 数组的分类 94 
4.2.1 静态数组 94 
4.2.2 动态数组 96 
4.2.3 一维数组 98 
4.2.4 数组中的数组 99 
4.2.5 二维数组及多维数组 100 
4.3 数组的基本操作 101 
4.3.1 数组元素的输入 102 
4.3.2 数组元素的输出 103 
4.3.3 数组元素的插入 103 
4.3.4 数组元素的删除 104 
4.3.5 数组元素的查找 104 
4.3.6 数组元素的排序 105 
4.4 记录数组 107 
4.4.1 记录数组的概念 107 
4.4.2 记录数组的使用 108 
4.5 数组相关函数及语句 108 
4.5.1 Array函数 108 
4.5.2 UBound函数和LBound函数 109 
4.5.3 Split函数 109 
4.5.4 Option Base语句 110 
4.6 小结 111 
4.7 练习与实践 111 
第5章 过程的创建和使用 112 
 视频讲解:53分钟 
5.1 认识过程 113 
5.2 事件过程 113 
5.2.1 建立事件过程 114 
5.2.2 调用事件过程 114 
5.3 子过程(Sub过程) 115 
5.3.1 建立子过程 115 
5.3.2 调用子过程 117 
5.3.3 调用其他模块中的子过程 118 
5.4 函数过程(Function过程) 119 
5.4.1 建立函数过程 119 
5.4.2 调用函数过程 119 
5.4.3 函数过程与子过程的区别 120 
5.5 参数的传递 120 
5.5.1 认识参数 120 
5.5.2 参数按值和按地址传递 122 
5.5.3 数组参数 123 
5.5.4 对象参数 124 
5.6 嵌套过程 125 
5.7 递归过程 127 
5.8 属性过程(Property过程) 128 
5.8.1 使用属性过程建立类的属性 129 
5.8.2 使用类属性 130 
5.8.3 只读属性和对象属性 131 
5.9 小结 131 
5.10 练习与实践 131 
第6章 内置函数与API函数 132 
 视频讲解:53分钟 
6.1 数学函数 133 
6.1.1 Abs函数(求绝对值) 133 
6.1.2 Exp函数(e的n次方) 133 
6.1.3 Sgn函数(返回符号) 134 
6.1.4 Sqr函数(平方根) 135 
6.2 字符串函数 135 
6.2.1 Len函数 135 
6.2.2 Left和Right函数 136 
6.2.3 Mid函数 137 
6.2.4 Trim、RTrim、LTrim函数(去空格) 137 
6.3 类型转换函数 138 
6.3.1 Asc函数(转换为ASCII) 138 
6.3.2 Chr函数(转换为字符) 138 
6.3.3 Val函数(转换为数值型) 139 
6.3.4 Str函数(转换为字符型) 139 
6.4 判断函数 140 
6.4.1 IsNull函数 140 
6.4.2 IsNumeric函数 140 
6.4.3 IsArray函数 141 
6.5 日期和时间函数 141 
6.5.1 Date函数、Now函数、Time函数 141 
6.5.2 Timer函数 142 
6.5.3 Weekday函数 143 
6.5.4 Year、Month、Day函数(年、月、日) 144 
6.5.5 Hour、Minute、Second函数(时、分、秒) 145 
6.6 随机函数 146 
6.6.1 Randomize函数 146 
6.6.2 Rnd函数 146 
6.7 格式化函数 147 
6.8 API函数 150 
6.8.1 API的概念 150 
6.8.2 API的相关概念 152 
6.9 API浏览器 153 
6.9.1 启动API浏览器 153 
6.9.2 API浏览器的加载 154 
6.9.3 API浏览器的使用 155 
6.10 API的使用 157 
6.10.1 API函数的声明 157 
6.10.2 API常数与类型 158 
6.11 API函数的调用 158 
6.12 小结 159 
6.13 练习与实践 159  
第2篇 核心技术  
第7章 窗体和系统对象 162 
 视频讲解:1小时9分钟 
7.1 窗体的概述 163 
7.1.1 窗体的结构 163 
7.1.2 模式窗体和无模式窗体 163 
7.1.3 SDI窗体和MDI窗体 164 
7.1.4 添加和移除窗体 166 
7.1.5 加载(Load)与卸载(Unload)窗体 167 
7.2 窗体的属性 168 
7.2.1 名称(Name属性) 169 
7.2.2 标题(Caption属性) 169 
7.2.3 图标(Icon属性) 170 
7.2.4 背景(Picture属性) 171 
7.2.5 边框样式(BorderStyle属性) 172 
7.2.6 显示状态(WindowState属性) 173 
7.2.7 显示位置(StartUpPosition属性) 173 
7.3 窗体的方法 174 
7.3.1 显示窗体(Show方法) 174 
7.3.2 隐藏窗体(Hide方法) 175 
7.3.3 移动窗体(Move方法) 176 
7.4 窗体的事件 177 
7.4.1 单击和双击(Click/DblClick事件) 177 
7.4.2 载入和卸载(Load/QueryUnload/Unload事件) 178 
7.4.3 活动性(Activate/Deactivate事件) 180 
7.4.4 初始化(Initialize事件) 181 
7.4.5 调整大小(Resize事件) 181 
7.4.6 重绘(Paint事件) 182 
7.4.7 焦点事件(GotFocus/LostFocus事件) 183 
7.5 窗体事件的生命周期 183 
7.5.1 窗体启动过程 184 
7.5.2 窗体运行过程 184 
7.5.3 窗体关闭过程 184 
7.6 MDI窗体 186 
7.6.1 MDI窗体概述 186 
7.6.2 MDI窗体的添加和移除 187 
7.6.3 MDI子窗体(MDIChild属性) 189 
7.6.4 MDI程序的特点 190 
7.6.5 MDI主窗体的设计 191 
7.7 系统对象 191 
7.7.1 应用程序对象(APP对象) 192 
7.7.2 屏幕对象(Screen对象) 193 
7.7.3 剪贴板对象(Clipboard对象) 195 
7.7.4 调试对象(Debug对象) 195 
7.8 小结 196 
7.9 练习与实践 196 
第8章 标准模块和类模块 197 
 视频讲解:12分钟 
8.1 标准模块 198 
8.1.1 标准模块概述 198 
8.1.2 添加标准模块 198 
8.2 类模块 199 
8.2.1 类模块的概述 200 
8.2.2 添加类模块 200 
8.3 标准模块和类模块的区别 201 
8.4 小结 202 
8.5 练习与实践 202 
第9章 常用标准控件 203 
 视频讲解:1小时29分钟 
9.1 控件概述 204 
9.1.1 控件的作用 204 
9.1.2 控件的属性、方法和事件 204 
9.1.3 控件的分类 205 
9.2 控件的相关操作 206 
9.2.1 向窗体上添加控件 206 
9.2.2 调整控件的大小 206 
9.2.3 复制与删除控件 206 
9.2.4 使用窗体编辑器调整控件布局 207 
9.2.5 锁定控件 208 
9.3 标签和文本框 209 
9.3.1 标签(Label控件) 209 
9.3.2 文本框(TextBox控件) 210 
9.4 命令按钮 214 
9.4.1 命令按钮的属性 214 
9.4.2 命令按钮的事件 215 
9.5 单选按钮、复选框及框架 216 
9.5.1 单选按钮(OptionButton控件) 216 
9.5.2 复选框(CheckBox控件) 218 
9.5.3 框架(Frame控件) 218 
9.6 列表框与组合框 220 
9.6.1 列表框(ListBox控件) 220 
9.6.2 组合框(ComboBox控件) 224 
9.7 滚动条 226 
9.8 Timer控件 229 
9.9 控件数组 231 
9.9.1 控件数组的概念 231 
9.9.2 创建控件数组 231 
9.9.3 使用控件数组 232 
9.10 小结 235 
9.11 练习与实践 235 
第10章 菜单、工具栏和状态栏 236 
 视频讲解:1小时 
10.1 菜单概述 237 
10.1.1 菜单的组成 237 
10.1.2 菜单编辑器 238 
10.2 标准菜单 240 
10.2.1 创建最简菜单 240 
10.2.2 设置菜单的快捷键和访问键 241 
10.2.3 创建级联菜单 242 
10.2.4 创建复选菜单 242 
10.2.5 设置菜单分隔条 243 
10.2.6 设置菜单无效 243 
10.2.7 为菜单事件添加代码 244 
10.3 弹出式菜单 244 
10.3.1 弹出式菜单概述 244 
10.3.2 PopupMenu方法 244 
10.3.3 弹出式菜单的设计和调用 245 
10.4 菜单数组 246 
10.4.1 创建菜单数组 246 
10.4.2 为菜单数组编写代码 247 
10.5 工具栏设计 248 
10.5.1 工具栏概述 248 
10.5.2 利用Toolbar控件创建最简工具栏 248 
10.5.3 为工具栏按钮添加图片 249 
10.5.4 为工具栏按钮设置分组 250 
10.5.5 为工具栏添加下拉菜单 251 
10.5.6 为工具栏按钮添加事件处理代码 252 
10.6 状态栏设计 253 
10.6.1 状态栏概述 253 
10.6.2 在状态栏中显示日期、时间 253 
10.6.3 在状态栏中显示操作员信息 254 
10.6.4 在状态栏中显示鼠标位置 255 
10.7 小结 255 
10.8 练习与实践 256 
第11章 对话框 257 
 视频讲解:40分钟 
11.1 输入对话框(InputBox) 258 
11.2 消息对话框(MsgBox) 259 
11.3 公用对话框 261 
11.3.1 公用对话框概述 261 
11.3.2 “打开”对话框 263 
11.3.3 “另存为”对话框 264 
11.3.4 “颜色”对话框 266 
11.3.5 “字体”对话框 266 
11.3.6 “打印”对话框 268 
11.3.7 “帮助”对话框 269 
11.4 小结 269 
11.5 练习与实践 269 
第12章 常用ActiveX控件 270 
 视频讲解:1小时44分钟 
12.1 ActiveX控件的使用 271 
12.1.1 添加ActiveX控件 271 
12.1.2 删除ActiveX控件 272 
12.1.3 注册ActiveX控件 272 
12.2 图像列表控件(ImageList) 274 
12.2.1 认识ImageList控件 274 
12.2.2 添加图像 274 
12.2.3 与其他控件关联 276 
12.2.4 创建组合图像 278 
12.3 视图控件(ListView) 278 
12.3.1 认识ListView控件 279 
12.3.2 添加数据 279 
12.3.3 用“ListView控件+数据表”创建报表视图 280 
12.3.4 用ListView控件创建大图标视图 282 
12.4 树状控件(TreeView) 283 
12.4.1 认识TreeView控件 283 
12.4.2 添加数据 283 
12.4.3 删除指定节点数据 285 
12.4.4 节点展开与折叠 285 
12.4.5 用“TreeView控件+数据表”创建多级树状视图 286 
12.5 选项卡控件(SSTab) 290 
12.5.1 认识SSTab控件 290 
12.5.2 设置选项卡数目和行数 291 
12.5.3 在选项卡中添加控件 291 
12.5.4 运行时启用和停用选项卡 291 
12.5.5 定制不同样式的选项卡 292 
12.5.6 图形化选项卡 293 
12.6 进度条(ProgressBar) 294 
12.6.1 认识ProgressBar控件 294 
12.6.2 显示进展情况 295 
12.6.3 将Max属性设置为已知的界限 295 
12.6.4 隐藏ProgressBar控件 295 
12.6.5 用ProgressBar控件显示清空数据的进度 295 
12.7 日期/时间控件(DateTimePicker) 296 
12.7.1 认识DateTimePicker控件 297 
12.7.2 设置和返回日期 297 
12.7.3 实时读取DTPicker控件中的日期 298 
12.7.4 使用CheckBox属性来选择无日期 298 
12.7.5 使用日期和时间的格式 298 
12.7.6 使用DTPicker控件计算日期或天数 300 
12.8 小结 301 
12.9 练习与实践 301 
第13章 鼠标键盘处理 302 
 视频讲解:30分钟 
13.1 鼠标指针的设置 303 
13.1.1 设置鼠标指针形状 303 
13.1.2 设置鼠标指针为指定的图片 304 
13.1.3 设置鼠标指针为指定的动画 304 
13.2 鼠标事件的响应 305 
13.2.1 鼠标单击和双击(Click事件和DblClick事件) 306 
13.2.2 鼠标按下和抬起(MouseDown事件和MouseUp事件) 306 
13.2.3 鼠标移动(MouseMove事件) 307 
13.2.4 鼠标拖放(OLE拖放操作) 308 
13.3 键盘事件的响应 312 
13.3.1 ASCII码 312 
13.3.2 KeyDown事件和KeyUp事件 312 
13.3.3 KeyPress事件的使用 315 
13.4 小结 316 
13.5 练习与实践 316 
第14章 程序调试和错误处理 321 
 视频讲解:16分钟 
14.1 错误类型 318 
14.1.1 编译错误 318 
14.1.2 运行错误 319 
14.1.3 逻辑错误 319 
14.2 工作模式 319 
14.2.1 设计模式 320 
14.2.2 运行模式 320 
14.2.3 中断模式 320 
14.3 调试工具及使用 320 
14.3.1 调试工具栏的使用 321 
14.3.2 本地窗口的使用 321 
14.3.3 “立即”窗口的使用 322 
14.3.4 “监视”窗口的使用 322 
14.3.5 插入断点和逐语句跟踪 324 
14.4 错误处理语句和对象 324 
14.4.1 Err对象 324 
14.4.2 捕获错误(On Error语句) 325 
14.4.3 退出错误处理(Resume语句) 326 
14.4.4 编写错误处理函数 327 
14.5 小结 327 
14.6 练习与实践 327 
第15章 文件系统编程 328 
 视频讲解:1小时38分钟 
15.1 文件的基本概念 329 
15.1.1 文件的结构 329 
15.1.2 文件的分类 329 
15.1.3 文件处理的一般步骤 330 
15.2 文件系统控件 330 
15.2.1 驱动器列表框(DriveListBox控件) 331 
15.2.2 目录列表框(DirListBox控件) 332 
15.2.3 文件列表框(FileListBox控件) 334 
15.2.4 文件系统控件的联动 337 
15.3 文件的操作语句 338 
15.3.1 改变当前驱动器(ChDrive语句) 338 
15.3.2 改变目录或文件夹(ChDir语句) 339 
15.3.3 删除文件(Kill语句) 340 
15.3.4 创建目录或文件夹(MkDir语句) 341 
15.3.5 复制文件(FileCopy语句) 341 
15.3.6 重命名(Name语句) 342 
15.3.7 设置文件属性(SetAttr语句) 343 
15.4 常用的文件操作函数 343 
15.4.1 获取路径(CurDir函数) 344 
15.4.2 获取文件属性(GetAttr函数) 344 
15.4.3 获取文件创建或修改时间(FileDateTime函数) 345 
15.4.4 返回文件长度(FileLen函数) 345 
15.4.5 测试文件结束状态(EOF函数) 345 
15.4.6 获取打开文件的大小(LOF函数) 346 
15.5 顺序文件 346 
15.5.1 顺序文件的打开与关闭 346 
15.5.2 顺序文件的读取操作 348 
15.5.3 顺序文件的写入操作 351 
15.6 随机文件 353 
15.6.1 随机文件的打开与关闭 353 
15.6.2 读取随机文件 353 
15.6.3 写入随机文件 354 
15.7 二进制文件 356 
15.7.1 二进制文件的打开与关闭 356 
15.7.2 二进制文件的读取与写入操作 356 
15.8 小结 358 
15.9 练习与实践 358     
第3篇 高级应用  
第16章 图形图像技术 360 
 视频讲解:25分钟 
16.1 图形图像处理基础 361 
16.1.1 系统颜色 361 
16.1.2 在对象浏览器中查看系统颜色常量 361 
16.1.3 QBColor函数 362 
16.1.4 RGB函数 362 
16.2 坐标系统 363 
16.2.1 默认的坐标系统 363 
16.2.2 自定义的坐标系统 363 
16.3 图形外观效果 365 
16.3.1 绘图坐标 365 
16.3.2 图形位置和大小 365 
16.3.3 图形的边框效果 366 
16.3.4 绘制效果 367 
16.3.5 前景色和背景色 367 
16.3.6 填充效果 368 
16.4 绘图方法 368 
16.4.1 画点 368 
16.4.2 画线 369 
16.4.3 画圆 370 
16.4.4 清屏 371 
16.4.5 获取颜色值 372 
16.4.6 绘制图形 372 
16.5 图像处理函数 373 
16.5.1 加载图像(LoadPicture函数) 373 
16.5.2 保存图片(SavePicture函数) 373 
16.6 图形、图像处理控件 374 
16.6.1 Shape控件 374 
16.6.2 Line控件 375 
16.6.3 PictureBox控件 375 
16.6.4 Image控件 376 
16.7 小结 377 
16.8 练习与实践 377 
第17章 多媒体技术 379 
 视频讲解:50分钟 
17.1 MMControl控件 380 
17.1.1 认识MMControl控件 380 
17.1.2 MMControl控件的属性 380 
17.1.3 MMControl控件的事件 385 
17.2 Animation控件 386 
17.2.1 认识Animation控件 386 
17.2.2 Animation控件的属性 386 
17.2.3 Animation控件的方法 387 
17.3 MediaPlay控件 388 
17.3.1 认识MediaPlay控件 389 
17.3.2 MediaPlay控件的属性 389 
17.3.3 MediaPlay控件的方法 390 
17.4 ShockwaveFlash控件 391 
17.4.1 认识ShockwaveFlash控件 391 
17.4.2 ShockwaveFlash控件的属性 392 
17.4.3 ShockwaveFlash控件的方法 393 
17.4.4 ShockwaveFlash控件的事件 393 
17.5 DirectX 394 
17.5.1 下载和安装DirectX 394 
17.5.2 在VB中使用DirectX 395 
17.5.3 利用DirectSound编程实现实时混音 395 
17.6 多媒体综合应用 398 
17.6.1 CD播放器 398 
17.6.2 VCD播放器 399 
17.6.3 多媒体演示程序 401 
17.7 小结 402 
17.8 练习与实践 402 
第18章 SQL应用 403 
 视频讲解:1小时27分钟 
18.1 数据库的基本知识 404 
18.1.1 什么是数据库 404 
18.1.2 数据库软件的安装和使用 404 
18.2 SQL基础 409 
18.2.1 什么是SQL 409 
18.2.2 执行SQL语句的工具 410 
18.3 检索数据(SELECT子句) 411 
18.3.1 SELECT子句 412 
18.3.2 检索单个列 413 
18.3.3 检索多个列 413 
18.3.4 检索所有列 414 
18.4 排序检索数据(ORDER BY子句) 414 
18.4.1 排序数据 414 
18.4.2 按多个列排序 414 
18.4.3 按列位置排序 415 
18.4.4 指定排序方向 415 
18.4.5 对新生成的列进行排序 416 
18.5 过滤数据(WHERE子句) 416 
18.5.1 使用WHERE子句 417 
18.5.2 WHERE子句比较运算符 417 
18.5.3 检索指定范围的值 418 
18.5.4 模式条件查询 418 
18.5.5 组合条件查询(AND、OR和NOT) 419 
18.6 高级查询 420 
18.6.1 汇总数据 420 
18.6.2 分组统计 421 
18.6.3 子查询 421 
18.7 插入数据 422 
18.7.1 插入完整的行 422 
18.7.2 插入部分列 422 
18.7.3 插入检索出的数据 423 
18.7.4 将一个表中的数据复制到另一个表 423 
18.8 修改和删除数据 424 
18.8.1 修改数据 424 
18.8.2 删除数据 425 
18.9 小结 425 
18.10 练习与实践 425 
第19章 数据库开发技术 426 
 视频讲解:1小时3分钟 
19.1 VB访问数据库 427 
19.2 ODBC 427 
19.2.1 认识ODBC 427 
19.2.2 配置ODBC数据源 428 
19.3 DAO对象 430 
19.3.1 引用DAO对象 430 
19.3.2 DAO对象的子对象 431 
19.3.3 DAO对象的综合应用 435 
19.4 Data控件 438 
19.4.1 认识Data控件 438 
19.4.2 用Data控件连接数据库 439 
19.4.3 Data控件的综合应用 440 
19.5 ADO对象 441 
19.5.1 引用ADO对象 441 
19.5.2 ADO对象的子对象 442 
19.5.3 连接多种数据库(Connection对象) 442 
19.5.4 连接记录源(Recordset对象) 444 
19.5.5 执行SQL语句(Command对象) 445 
19.5.6 ADO对象的综合应用 446 
19.6 ADO控件 448 
19.6.1 认识ADO控件 448 
19.6.2 用ADO控件连接各种数据源 449 
19.6.3 用ADO控件连接记录源 451 
19.6.4 ADO控件常用属性、方法和事件 451 
19.6.5 ADO控件的综合应用 452 
19.7 小结 453 
19.8 练习与实践 454 
第20章 数据库控件 455 
 视频讲解:51分钟 
20.1 DBCombo和DBList控件 456 
20.2 DataCombo和DataList控件 457 
20.2.1 认识DataCombo和DataList控件 457 
20.2.2 DataCombo和DataList控件的属性 457 
20.2.3 显示关系表中的数据 458 
20.3 DataGrid控件 460 
20.3.1 认识DataGrid控件 460 
20.3.2 用DataGrid控件显示数据 460 
20.3.3 格式化数据 462 
20.3.4 锁定数据 463 
20.3.5 将DataGrid控件中的数据显示在文本框中 463 
20.4 MSFlexGrid和MSHFlexGrid控件 464 
20.4.1 认识MSHFlexGrid控件 464 
20.4.2 用MSHFlexGrid控件显示数据 465 
20.4.3 数据排序与合并 467 
20.4.4 隐藏行或列 468 
20.4.5 冻结字段 468 
20.5 小结 469 
20.6 练习与实践 469 
第21章 网络编程技术 475 
 视频讲解:26分钟 
21.1 网络基础知识 471 
21.1.1 OSI参考模型 471 
21.1.2 HTTP协议 471 
21.1.3 FTP协议 471 
21.2 Winsock控件编程 472 
21.2.1 TCP与UDP基础 472 
21.2.2 Winsock控件 472 
21.2.3 开发客户端/服务器端聊天程序 476 
21.3 Internet Transfer控件编程 478 
21.3.1 Internet Transfer控件 478 
21.3.2 文件上传与下载 480 
21.4 WebBrowser控件编程 483 
21.4.1 WebBrowser控件 483 
21.4.2 制作自己的浏览器 484 
21.5 小结 486 
21.6 练习与实践 486     
第4篇 项目实战  
第22章 企业进销存管理系统 488 
 视频讲解:2小时45分钟 
22.1 系统分析 489 
22.1.1 需求分析 489 
22.1.2 可行性分析 489 
22.1.3 编写项目计划书 490 
22.2 系统设计 492 
22.2.1 系统目标 492 
22.2.2 系统功能结构 492 
22.2.3 系统业务流程图 493 
22.2.4 系统编码规范 494 
22.3 系统运行环境 496 
22.4 数据库与数据表设计 496 
22.4.1 数据库分析 496 
22.4.2 创建数据库 497 
22.4.3 创建数据表 498 
22.4.4 数据表逻辑关系 501 
22.5 创建项目 503 
22.6 公共模块设计 503 
22.6.1 主函数 504 
22.6.2 数据库连接函数 504 
22.6.3 拼音简码函数 505 
22.7 启动窗体的设计 506 
22.7.1 设计窗体界面 506 
22.7.2 添加资源文件 507 
22.7.3 代码注册Flash控件 508 
22.7.4 调用Flash动画 509 
22.8 系统登录窗体设计 509 
22.8.1 设计窗体界面 510 
22.8.2 向ListView控件中添加用户名 511 
22.8.3 添加用户名和编号 512 
22.8.4 判断用户名和密码 512 
22.8.5 移动无标题栏窗体 513 
22.9 主窗体设计 514 
22.9.1 设计窗体界面 514 
22.9.2 设计菜单栏 515 
22.9.3 利用Flash设计工具栏 516 
22.9.4 利用图片设计浮动工具栏 517 
22.9.5 设计状态栏 519 
22.10 商品进货模块设计 520 
22.10.1 设计窗体界面 520 
22.10.2 窗体初始化 522 
22.10.3 商品信息录入 523 
22.11 库存状况模块设计 524 
22.11.1 设计窗体界面 525 
22.11.2 窗体初始化 527 
22.11.3 库存上下限设置 527 
22.11.4 自定义过程向MSFlexGrid控件中添加数据 528 
22.12 月销售状况模块设计 529 
22.12.1 设计窗体界面 529 
22.12.2 统计全年商品销售状况 530 
22.12.3 设计“每月销售比较”窗体界面 531 
22.12.4 利用图表分析月销售状况 532 
22.13 系统用户及权限设置模块设计 536 
22.13.1 设计窗体界面 536 
22.13.2 窗体初始化 537 
22.13.3 工具栏按钮 537 
22.13.4 执行操作 538 
22.14 运行项目 539 
22.15 程序打包 541 
22.16 开发常见问题与解决 542 
22.16.1 书写错误的函数名 542 
22.16.2 提示文件未找到错误信息 542 
22.16.3 解决用户定义类型未定义的问题 543 
22.16.4 数据批量录入 544 
22.16.5 使用数据回滚来恢复数据备份 546 
22.16.6 字段大小问题导致数据添加失败 546 
22.16.7 字段设置主键后不能插入重复值 547 
22.16.8 数据库中表存在关系,如何进行数据库清理 547 
22.17 小结 548       
精彩书摘
       使用Static语句声明的变量称为静态变量。它与用Dim语句声明的变量的不同之处在于:当一个过程结束时,过程中所用到的静态变量的值会保留,下次再调用该过程时,变量的初值是上次调用结束时被保留的值。    对于使用Dim语句声明的局部变量,随过程的调用而分配存储单元,并进行变量的初始化。一旦过程结束,变量的内容将自动消失,占用的存储单元也被释放。因此,每次调用过程时,变量都将重新初始化。    静态变量和动态变量就好像买房子和租房子一样,自己买的房子,一旦置办了生活用品就可以一直用下去,即使是出差或者长期不在家,屋内的东西也会保持不变。如果是租的房子,一旦房子到期了,房东就会收回房屋,然后重新找房子或者续租房子,这样就开始了一个新的租期。    如果不同模块中的公用变量使用同一名称,则通过同时引用模块名和变量名在代码中进行区分。例如,如果在Forml和Modulel中都声明了一个整型公用变量intNumber,则可以用Forml.intNumber和Modulel.intNumber来区分这两个同名的变量。    按F5键,运行程序,分别单击这两个按钮,将会看到两个公用变量被分别引用。    一个变量从系统给它分配内存空间开始,到它释放内存空间为止的这个过程就称为变量的一个生命周期。    1.动态变量    动态变量的生命周期是:当程序运行进入到变量所在的过程中时,从系统为该变量分配内存空间时开始,经过一系列的处理,在程序执行结束以后,该变量占用的内存空间被释放为止,变量的生命周期结束。在这个过程中使用Dim语句声明的变量属于动态变量。在该过程执行结束以后,动态变量的值将不被保存,当所在的过程被重新调用时变量会被重新声明和赋值。    2.静态变量    静态变量的生命周期是:从程序第一次运行到变量所在的过程开始,变量的值在程序执行过程中被修改;当程序执行退出过程以后,变量的值将被保存,变量所占的存储空间仍然存在;当程序再次执行到该过程时,变量的值是上次保留的值;直到程序运行结束,变量所占的存储空间才被释放,生命周期结束。在过程中使用Static语句声明的变量是静态变量。    3.全局变量    全局变量的生命周期是:当程序为全局变量分配存储空间时,全局变量的生命周期开始;在整个应用程序的执行过程中,全局变量的存储空间始终被占用,其值不会消失也不会被初始化;只有到整个应用程序执行结束以后,该变量才会释放内存空间,生命周期结束。 
      前言/序言
     丛书说明:“软件开发视频大讲堂”(第1版)于2008年8月出版以来,因其编写细腻,易学实用,配备全程视频等,在软件开发类图书市场上产生了很大反响,绝大部分品种在全国软件开发零售图书排行榜中名列前茅,2009年多个品种被评为“全国优秀畅销书”。
  “软件开发视频大讲堂”丛书(第2版)于2010年8月出版,自出版至今,绝大部分品种在全国软件开发类零售图书排行榜中,依然持续名列前茅。丛书迄今累计已销售近40万册,被百余所高校计算机相关专业、软件学院选为教学参考书,在众多的软件开发类图书中成为一支最耀眼的品牌。
  “软件开发视频大讲堂”丛书(第3版)在前两版的基础上,增删了品种,修正了疏漏,重新录制了视频,提供了从入门学习,到实例应用,到模块开发,到项目开发,到能力测试,直到面试等各个阶段的海量开发资源库。为了方便教学,还提供了教学课件PPT。
  C#是微软公司为Visual Studio开发平台推出的一种简洁、类型安全的面向对象的编程语言,开发人员通过它可以编写在.NET Framework上运行的各种安全可靠的应用程序。C#面世以来,以其易学易用、功能强大的优势被广泛应用,而Visual Studio开发平台则凭借其强大的可视化用户界面设计,让程序员从复杂的界面设计中解脱出来,使编程成为一种享受。C#不但可以开发数据库管理系统,而且也可以开发集声音、动画、视频为一体的多媒体应用程序和网络应用程序,这使得它正在成为程序开发人员使用的主流编程语言。
  本书内容
  本书提供了从入门到编程高手所必备的各类知识,共分4篇。
  第1篇:基础知识。本篇通过介绍初识C#及其开发环境、开始C#之旅、变量与常量、表达式与运算符、字符与字符串、流程控制语句、数组和集合、属性和方法以及结构和类等内容,并结合大量的图示、实例、视频等使读者快速掌握C#语言,为以后编程奠定坚实的基础。
  第2篇:核心技术。本篇介绍面向对象技术高级应用、异常处理、Windows窗体、Windows应用程序常用控件、Windows应用程序高级控件、数据访问技术、DataGridView数据控件和程序调试等内容。学习完本篇,能够使读者开发一些小型应用程序。
  第3篇:高级应用。本篇介绍迭代器和分部类、泛型的使用、文件及数据流技术、帮助文件的使用、GDI+图形图像技术、水晶报表与打印、网络编程技术、注册表技术、线程的使用和Windows应用程序打包等内容。学习完本篇,能够使读者开发出文件流程序、图形图像程序、报表打印程序、多媒体程序、网络程序和多线程应用程序等。
  第4篇:项目实战。本篇通过开发一个大型、完整的企业人事管理系统,运用软件工程的设计思想,让读者学习如何进行软件项目的实践开发。书中按照“编写项目计划书→系统设计→数据库设计→创建项目→实现项目→运行项目→项目打包部署→解决开发常见问题”的流程进行介绍,带领读者一步一步亲身体验开发项目的全过程。
  本书特点
  ◆由浅入深,循序渐进:本书以初、中级程序员为对象,先从C#语言基础学起,再学习C#的核心技术,然后学习C#的高级应用,最后学习开发一个完整项目。讲解过程中步骤详尽、版式新颖,在操作的内容图片上以“(((…”编号+内容的方式进行标注,让读者在阅读中一目了然,从而快速把握书中内容。
  ◆语音视频,讲解详尽:书中每一章节均提供声图并茂的视频教学录像,读者可以根据书中提供的视频位置在光盘中找到。这些视频能够引导初学者快速入门,感受编程的快乐和成就感,增强进一步学习的信心,从而快速成为编程高手。
  ◆实例典型,轻松易学:通过实例学习是最好的学习方式,本书通过一个知识点、一个例子、一个结果、一段评析、一个综合应用的模式,透彻详尽地讲述了实际开发中所需的各类知识。另外,为了便于读者阅读程序代码,快速学习编程技能,书中几乎每行代码都提供了注释。
  ◆精彩栏目,贴心提醒:本书根据需要在各章使用了很多“注意”、“说明”、“技巧”等小提示,让读者在学习过程中可以更轻松地理解相关知识点及概念,并轻松地掌握个别技术的应用技巧。
  ◆应用实践,随时练习:书中几乎每章都提供了“实践与练习”,让读者能够通过对问题的解答重新回顾、熟悉所学的知识,为进一步学习做好充分的准备。
  读者对象
  ◆初学编程的自学者        ◆编程爱好者
  ◆大中专院校的老师和学生     ◆相关培训机构的老师和学员
  ◆毕业设计的学生         ◆初、中级程序开发人员
  ◆程序测试及维护人员       ◆参加实习的“菜鸟”程序员
  读者服务
  致读者
  本书由C#程序开发团队组织编写,主要编写人员有赵会东、王小科、顾彦玲、刘欣、杨丽、寇长梅、陈丹丹、王国辉、李伟、李银龙、李慧、潘凯华、高春艳、陈英、刘莉莉、李继业、刘淇、赵永发、王双、黎秋芬、陈媛、曹飞飞、朱晓、房大伟、刘云峰、吕双、顾丽丽、孟范胜、董大永、李继业、尹强、张磊、王军、刘彬彬、卢瀚、安剑、巩建华、刘锐宁、李伟明、梁水、李鑫、孙秀梅、李钟尉等。在编写本书的过程中,我们以科学、严谨的态度,力求精益求精,但错误、疏漏之处在所难免,敬请广大读者批评指正。
  感谢您购买本书,希望本书能成为您编程路上的领航者。
  “零门槛”编程,一切皆有可能。
  祝读书快乐!
  编  者
    
				 
				
				
					《现代软件开发实践与核心技术解析》  内容简介:  本书是一部全面、深入探讨现代软件开发各个层面的技术专著,旨在为读者构建坚实的理论基础和丰富的实践经验。我们摒弃了仅聚焦于某一特定技术或语言的局限,而是从软件开发的宏观视角出发,逐一剖析贯穿于整个开发生命周期的关键概念、方法论和技术工具。本书内容详实,逻辑严谨,力求为不同阶段的开发者提供清晰的学习路径和深刻的技术洞察。  第一部分:软件开发的基础哲学与工程伦理  在进入具体技术细节之前,我们首先回归软件开发的本质。本部分将深入探讨软件工程的哲学思想,包括敏捷开发的内在逻辑、精益思想在软件开发中的应用,以及DevOps文化如何打破开发与运维的壁垒,实现端到端的价值交付。我们将详细阐述“持续集成”、“持续交付”和“持续部署”的核心理念及其在现代开发流程中的地位。同时,本书也将触及软件开发中的工程伦理问题,例如数据隐私保护、代码的可解释性、技术的可访问性以及开发者在构建强大技术系统时应承担的社会责任。这些基础性、前瞻性的探讨,将帮助读者建立起正确的技术观和职业观,为日后的开发实践打下坚实基础。  第二部分:系统性架构设计与高可用性保障  成功的软件产品离不开精心设计的系统架构。本部分将聚焦于现代软件架构的关键要素。我们将详细讲解微服务架构的优势与挑战,包括服务拆分策略、服务间通信机制(如RESTful API、 gRPC、消息队列)、服务注册与发现、配置中心以及API网关的设计。此外,本书还将深入探讨事件驱动架构(EDA)的原理和应用场景,阐述如何利用消息队列(如Kafka、RabbitMQ)构建弹性、可扩展的系统。对于追求极致稳定性和性能的场景,我们将重点分析领域驱动设计(DDD)的理念,解析如何通过领域模型来指导系统设计,以及其在复杂业务系统中的应用。同时,本书也将详细介绍高可用性(HA)和容错设计的策略,包括负载均衡、数据库高可用方案(主备、读写分离)、缓存策略(如CDN、分布式缓存)、分布式事务解决方案(如两阶段提交、三阶段提交、TCC、Saga模式)以及故障转移与恢复机制。我们将通过真实案例分析,展示不同架构风格的权衡取舍,帮助读者根据实际需求选择最适合的架构模式。  第三部分:高效的编程范式与语言特性  编程语言是实现软件功能的载体,而编程范式则决定了我们如何组织代码、解决问题。本部分将超越单一语言的语法细节,而侧重于理解不同的编程范式及其在实际开发中的应用。我们将深入解析面向对象编程(OOP)的核心原则(封装、继承、多态)以及如何通过设计模式(如工厂模式、单例模式、观察者模式、策略模式)来提高代码的可维护性和可重用性。函数式编程(FP)的兴起带来了新的思维方式,本书将介绍其核心概念(纯函数、不可变性、高阶函数)以及如何在现代开发中融合函数式和面向对象风格,例如通过Lambda表达式、Stream API等。本书还将探讨声明式编程的思想,解释其在UI开发、数据查询和自动化配置等领域的优势。在讨论编程语言特性时,我们将重点关注那些能够提升开发效率、增强代码健壮性的特性,例如并发与并行编程模型(如多线程、协程、Actor模型)、内存管理机制(如垃圾回收、手动内存管理)以及类型系统(静态类型与动态类型、泛型、类型推断)对软件质量的影响。  第四部分:数据管理与存储解决方案  数据是软件的核心资产,高效、可靠的数据管理是构建健壮系统的基石。本部分将全面介绍当前主流的数据管理与存储技术。我们将深入解析关系型数据库(如MySQL、PostgreSQL)的设计原则、SQL优化技巧、索引策略以及事务管理。同时,本书也将详细阐述NoSQL数据库的多种类型(键值存储、文档数据库、列族数据库、图数据库)及其适用场景,例如Redis在缓存和实时数据处理中的应用,MongoDB在半结构化数据存储中的优势,以及Cassandra在海量数据写入场景下的表现。分布式数据库的挑战与解决方案也将是本部分的重点,包括数据分片、数据一致性模型(如CAP定理、BASE理论)、分布式事务以及多活架构的设计。此外,本书还将探讨数据仓库、数据湖等大数据解决方案,以及ETL(Extract, Transform, Load)流程的设计与实现。  第五部分:构建、测试与质量保障体系  高质量的软件离不开严格的构建、测试和持续的质量保障。本部分将详细介绍现代软件开发中的自动化构建流程,包括Maven、Gradle等构建工具的使用,以及Docker、Kubernetes等容器化技术如何简化环境配置和部署。在测试方面,本书将深入探讨单元测试、集成测试、端到端测试、性能测试、安全测试等不同层次的测试策略。我们将详细讲解测试驱动开发(TDD)和行为驱动开发(BDD)的方法论,以及如何利用JUnit、Mockito、Selenium等主流测试框架来编写有效的自动化测试用例。代码质量度量、静态代码分析(如SonarQube)、代码审查(Code Review)的最佳实践也将被一一呈现。最后,本书还将探讨持续集成/持续交付(CI/CD)流水线的构建与优化,讲解Jenkins、GitLab CI、GitHub Actions等CI/CD工具的使用,以及如何通过自动化流程来加速软件发布周期,同时保证软件质量。  第六部分:安全开发与网络通信  在互联互通的时代,软件安全是不可忽视的重中之重。本部分将从开发者的角度出发,讲解如何构建安全可靠的软件系统。我们将深入探讨常见的网络安全威胁,如SQL注入、XSS攻击、CSRF攻击、DDoS攻击等,并详细介绍相应的防御措施。本书将重点讲解身份认证与授权机制的设计,包括OAuth 2.0、OpenID Connect、JWT(JSON Web Token)等标准的应用。数据加密技术,包括对称加密、非对称加密以及SSL/TLS协议在网络通信中的作用也将被详细阐述。此外,本书还将涵盖安全编码实践,如输入验证、输出编码、最小权限原则等,以及如何利用安全扫描工具来发现潜在的安全漏洞。在网络通信方面,我们将深入分析HTTP/HTTPS协议的工作原理,讲解TCP/IP协议栈的基础知识,以及RESTful API、WebSocket等通信模式的实现细节。  第七部分:现代化开发工具与云原生技术  掌握现代化的开发工具和云原生技术是提升开发效率和实现敏捷交付的关键。本部分将介绍当前开发领域最流行、最具影响力的技术栈和工具。我们将深入讲解Git版本控制系统的核心命令与工作流程,以及如何利用GitHub、GitLab等平台进行团队协作。容器化技术Docker的原理、镜像构建、容器编 Docker Compose和Kubernetes(K8s)在容器编排、服务部署、伸缩和管理方面的强大能力。本书还将触及Serverless计算模型(如AWS Lambda、Azure Functions)的优势和应用场景,以及微前端、微服务治理等前沿概念。此外,我们将探讨DevOps实践中常用的监控与日志分析工具(如Prometheus、Grafana、ELK Stack),以及如何利用它们来保障生产环境的稳定运行。  本书特色:     体系化构建: 本书从宏观到微观,系统性地梳理了软件开发的核心知识体系,避免碎片化学习。    理论与实践结合: 深入浅出的理论讲解与丰富的实战案例分析相结合,帮助读者理解概念的实际应用。    前瞻性视野: 关注当前和未来的技术趋势,为读者提供前瞻性的技术洞察。    注重工程思维: 强调软件工程的原则和方法论,培养读者的系统思维和工程伦理。    适用广泛: 无论您是初学者、在校学生,还是经验丰富的开发者,都能从本书中获得有价值的知识和启发。  通过阅读本书,您将不仅能够掌握构建高质量软件所需的各项技术,更能形成一套系统性的开发思路和解决问题的能力,在快速变化的软件开发领域中保持竞争力。