语言基础 1
第1章 VB.NET 2005简介 1
1.1 什么是.NET 2
1.2 通用语言进行时 2
1.2.1 .NET架构 2
1.2.2 通用语言运行时 3
1.3 Visual Studio 2005的安装 3
1.4 初步认识Visual Basic.NET 4
1.5 VB.NET 2005新特性 6
1.6 VB.NET 2005的开发环境IDE 9
1.6.1 工作区 10
1.6.2 菜单介绍 12
1.7 Windows窗体 14
1.7.1 Windows窗体简介 14
1.7.2 创建简单的Windows窗体 15
1.7.3 MDI窗体 16
1.8 本章小结 18
第2章 VB.NET编程语言 19
2.1 数据类型和变量 20
2.1.1 基本数据类型 20
2.1.2 数据类型转换 21
2.1.3 变量和常量 22
2.1.4 枚举类型 30
2.1.5 结构类型 34
2.2 数组 37
2.2.1 多维数组 39
2.2.2 动态数组 41
2.3 运算符 44
2.3.1 赋值运算符 45
2.3.2 算术运算符 48
2.3.3 字符串连接运算符 48
2.3.4 比较运算符 50
2.3.5 逻辑/位运算符 52
2.3.6 运算符的优先级 56
2.4 控制流程 57
2.4.1 顺序语句 57
2.4.2 条件语句 57
2.4.3 循环语句 62
2.4.4 注释语句和续行符 72
2.5 过程 73
2.5.1 过程概述 73
2.5.2 Sub过程 75
2.5.3 Function过程 76
2.5.4 调用过程 77
2.5.5 参数传递 81
2.5.6 内部函数 84
2.6 本章小结 101
第3章 VB.NET面向对象技术 102
3.1 面向对象编程的优点 103
3.2 名字空间 103
3.2.1 名字空间的定义 103
3.2.2 引用名字空间 104
3.3 类和对象 107
3.3.1 类的定义 107
3.3.2 对象 107
3.3.3 类成员 110
3.3.4 共享成员 119
3.3.5 类的封装、继承和多态性 121
3.3.6 重载、重写和隐藏 128
3.3.7 构造函数和析构函数 138
3.4 本章小结 144
常用控件 145
第4章 VB.NET 2005的常用控件 145
4.1 TextBox控件 148
4.1.1 TextBox控件简介 148
4.1.2 设置文本框的文本 148
4.1.3 创建密码文本框 149
4.1.4 创建只读文本框 150
4.1.5 以编程方式选择文本 150
4.2 Label控件 151
4.2.1 Label控件简介 151
4.2.2 设置控件文本 151
4.2.3 设置文本对齐方式 151
4.2.4 调整大小以适应内容 152
4.3 StatusBar控件 153
4.3.1 StatusBar控件简介 153
4.3.2 确定单击了哪个面板 153
4.3.3 设置状态栏面板的大小 154
4.4 VB.NET 2005的StatusStrip控件 155
4.5 ListBox控件 157
4.5.1 ListBox控件简介 157
4.5.2 判定选定项的位置和内容 157
4.5.3 用Items属性访问列表项目 160
4.5.4 获得列表的项目数 160
4.5.5 添加和删除项 160
4.6 CheckedListBox控件 169
4.6.1 CheckedListBox控件简介 170
4.6.2 确定CheckedListBox控件中的已选中项 170
4.7 ComboBox控件 173
4.7.1 ComboBox控件简介 174
4.7.2 何时使用组合框或列表框 174
4.8 ListView控件 177
4.8.1 ListView控件简介 178
4.8.2 用View属性改变视图 179
4.8.3 添加和移除项 179
4.8.4 添加和移除列 180
4.8.5 添加和移除子项 180
4.8.6 在列表视图中显示图像 181
4.9 TreeView控件 184
4.9.1 TreeView控件简介 184
4.9.2 添加和移除节点 186
4.9.3 确定单击了哪个TreeView节点 187
4.9.4 循环访问TreeView控件的所有节点 187
4.9.5 为TreeView控件设置图标 188
4.10 PictureBox控件 190
4.10.1 PictureBox控件简介 190
4.10.2 在运行时修改图片的大小或位置 191
4.10.3 将图片加载到Picture控件中 191
4.11 ImageList组件 195
4.11.1 ImageList组件简介 195
4.11.2 添加和移除图像 196
4.12 RadioButton控件 199
4.12.1 RadioButton控件简介 199
4.12.2 将RadioButton控件分组 200
4.12.3 运行时选择单选按钮 200
4.13 CheckBox控件 203
4.13.1 CheckBox控件简介 203
4.13.2 CheckBox控件的单击(Click)事件 204
4.14 MainMenu组件 208
4.14.1 MainMenu组件简介 208
4.14.2 向Windows窗体添加菜单和菜单项 208
4.14.3 复制Windows窗体菜单上的项 210
4.14.4 删除Windows窗体菜单上的项 211
4.14.5 隐藏Windows窗体上的菜单项 212
4.14.6 禁用Windows窗体菜单上的项 213
4.14.7 编辑Windows窗体的菜单项的名称 213
4.14.8 以编程方式合并菜单项 214
4.14.9 移动Windows窗体菜单上的项 215
4.14.10 向Windows窗体添加菜单增强功能 215
4.15 VS 2005的MenuStrip控件 217
4.15.1 MenuStrip控件简介 217
4.15.2 使用MenuStrip创建MDI窗口列表(Windows窗体) 218
4.15.3 在Windows窗体MenuStrip控件中合并菜单项 219
4.15.4 为MDI应用程序设置自动菜单合并 220
4.16 Button控件 224
4.16.1 Button控件简介 224
4.16.2 响应按钮单击事件 225
4.16.3 将按钮指定为接受按钮 225
4.16.4 将按钮指定为取消按钮 226
4.17 GroupBox控件 227
4.17.1 GroupBox控件简介 228
4.17.2 使用GroupBox控件对控件分组 228
4.18 本章小结 229
数据库技术 230
第5章 数据库基础 230
5.1 Access数据库 231
5.1.1 Access数据库的安装 231
5.1.2 Access数据库的使用 233
5.2 SQL Server数据库 235
5.2.1 SQL Server简介 236
5.2.2 SQL Server 2005的主要特性 237
5.2.3 SQL Server 2005的安装 238
5.2.4 启动SQL Server 2005 242
5.3 SQL Server 2005的使用 243
5.3.1 数据库管理 243
5.3.2 表管理 250
5.3.3 视图管理 253
5.4 常用的Transact-SQL语言 255
5.4.1 数据定义 256
5.4.2 数据查询 259
5.4.3 数据更新 264
5.4.4 视图 272
5.5 本章小结 275
第6章 ADO.NET数据库访问技术 276
6.1 ADO.NET简介 277
6.1.1 ADO.NET概述 277
6.1.2 ADO.NET和ADO的异同 278
6.1.3 OLE DB与ADO.NET或ADO 279
6.1.4 ADO.NET结构 280
6.2 通过ADO.NET连接到数据源 281
6.2.1 创建与SQL Server的连接 281
6.2.2 创建与Access数据库的连接 283
6.2.3 创建与ODBC数据源的连接 284
6.2.4 创建与Oracle数据库的连接 285
6.3 DataSet对象 286
6.3.1 创建DataSet 287
6.3.2 创建DataTable对象 287
6.3.3 向DataSet添加DataTable 288
6.3.4 添加、导航表间关系 291
6.3.5 复制DataSet内容 296
6.4 Connection对象 298
6.5 Command对象 304
6.6 DataReader对象 307
6.7 DataAdapter和DataSet 312
6.7.1 使用DataAdapter填充DataSet 313
6.7.2 使用DataAdapter和DataSet更新数据库 317
6.8 本章小结 321
第7章 常用数据绑定控件 322
7.1 数据绑定技术 323
7.2 BindingSource组件 323
7.2.1 BindingSource组件简介 324
7.2.2 将Windows窗体控件绑定到DBNull数据库值 325
7.2.3 使用BindingSource组件对ADO.NET数据进行排序和筛选 329
7.2.4 将Windows窗体控件绑定到类型 330
7.3 BindingNavigator控件 332
7.3.1 BindingNavigator控件简介 332
7.3.2 使用BindingNavigator控件定位数据 333
7.3.3 向BindingNavigator控件添加“加载”、“保存”和“取消”按钮 334
7.4 TextBox、Label控件 337
7.4.1 在设计时实现 338
7.4.2 以编程方式实现 339
7.5 ComboBox控件、ListBox控件 341
7.5.1 在设计时实现 341
7.5.2 以编程方式实现 342
7.6 DataGridView控件 343
7.6.1 DataGridView控件简介 343
7.6.2 调整行和列的大小 344
7.6.3 设置控件样式 348
7.6.4 显示少量数据 351
7.6.5 查看和更新外部数据源中存储的数据 354
7.7 本章小结 357
第8章 存储过程 358
8.1 存储过程概述 359
8.2 存储过程的类型 359
8.2.1 用户定义的存储过程 359
8.2.2 扩展存储过程 360
8.2.3 系统存储过程 360
8.3 创建存储过程 360
8.3.1 使用CREATE PROCEDURE创建存储过程 361
8.3.2 使用对象资源管理器创建Transact-SQL存储过程 366
8.3.3 存储过程中的参数 368
8.3.4 返回存储过程中的数据 372
8.4 修改存储过程 379
8.4.1 使用ALTER PROCEDURE修改存储过程 379
8.4.2 使用对象资源管理器修改Transact-SQL存储过程 381
8.5 删除存储过程 383
8.5.1 使用DROP PROCEDURE删除存储过程 383
8.5.2 使用对象资源管理器删除存储过程 384
8.6 调用存储过程 384
8.7 本章小结 389
第9章 SQL Server公共语言运行库 390
9.1 SQL Server CLR集成简介 391
9.1.1 启用CLR集成 392
9.1.2 编译和部署CLR程序集 392
9.1.3 创建、修改和删除程序集 394
9.2 CLR用户定义函数 400
9.2.1 创建、修改和删除用户定义函数 400
9.2.2 CLR标量值函数 412
9.2.3 CLR表值函数 412
9.3 CLR用户定义聚合函数 416
9.3.1 聚合函数简介 416
9.3.2 创建、删除聚合函数 422
9.4 CLR存储过程 426
9.4.1 上下文连接 426
9.4.2 SQL Server进程中专用的ADO.NET扩展 428
9.4.3 CLR存储过程 432
9.5 CLR触发器 437
9.6 本章小结 442
高级应用 443
第10章 事务处理 443
10.1 事务的基本概念 444
10.1.1 事务的属性 444
10.1.2 数据库事务 445
10.1.3 使用Transact-SQL脚本实现事务 447
10.1.4 分布式事务 449
10.2 实现事务 451
10.2.1 System.Transactions概述 452
10.2.2 使用TransactionScope类实现隐性事务 452
10.2.3 使用CommittableTransaction类实现显式事务 459
10.3 事务隔离级别 462
10.3.1 隔离级别简介 463
10.3.2 隔离级别与并发问题 464
10.3.3 .NET Framework中的隔离级别 464
10.3.4 设置事务隔离级别 466
10.4 MARS 471
10.4.1 MARS简介 471
10.4.2 MARS和事务 473
10.5 事务升级 478
10.6 实现分布式事务 479
10.7 实现资源管理器 483
10.7.1 实现IEnlistmentNotification接口 484
10.7.2 在事务中登记资源 487
10.7.3 两阶段提交(2PC) 488
10.8 本章小结 490
第11章 水晶报表设计 491
11.1 水晶报表概述 492
11.1.1 嵌入式Crystal Reports设计器 492
11.1.2 报表查看器控件 494
11.1.3 对象模型 494
11.2 使用嵌入式Crystal Reports设计器创建报表 495
11.2.1 使用报表向导创建水晶报表 497
11.2.2 CrystalReportViewer控件 507
11.3 报表打印 510
11.4 本章小结 512
第12章 二进制文件处理 513
12.1 文件处理中常用的对象 514
12.1.1 Stream对象 514
12.1.2 StreamReader对象 515
12.1.3 StreamWriter对象 515
12.1.4 FileStream对象 516
12.1.5 BinaryReader对象 516
12.1.6 BinaryWriter对象 517
12.1.7 My.Computer.FileSystem对象 517
12.1.8 MemoryStream对象 520
12.2 文件的读写 521
12.2.1 使用Stream对象读写文件 521
12.2.2 使用StreamReader对象和StreamWriter对象读写文件 523
12.2.3 使用FileStream对象读写文件 525
12.2.4 使用BinaryReader对象和BinaryWriter对象读写文件 527
12.2.5 使用My.Computer.FileSystem对象读写文件 529
12.2.6 使用MemoryStream对象读写数据 530
12.3 本章小结 535
实践演习 536
第13章 餐饮管理系统 536
13.1 系统分析 537
13.1.1 功能需求分析 537
13.1.2 数据需求分析 538
13.1.3 功能模块设计 539
13.2 系统设计 539
13.2.1 全局模块设计 540
13.2.2 数据库FoodSvc的设计 542
13.3 系统实现 544
13.3.1 创建主窗体main 544
13.3.2 登录窗体Login 552
13.3.3 修改密码窗体Password 554
13.3.4 用户管理窗体User 557
13.3.5 用户信息窗体userl 563
13.3.6 菜单管理窗体Menu 566
13.3.7 员工管理窗体Employee 572
13.3.8 菜品资料窗体ManMenu 577
13.3.9 员工资料窗体Clerk 585
13.3.10 物资管理窗体Res 590
13.3.11 登记菜单窗体check 599
13.3.12 结账窗体settle 605
13.3.13 账单信息列表窗体enorderinfo 609
13.3.14 预订服务窗体order 613
13.3.15 外卖服务窗体worder 627
13.4 本章小结 637
第1章 VB.NET2005简介 1
实例1-1 创建MDI父窗体和MDI子窗体 16
第2章 VB.NET编程语言 19
实例2-1 变量声明和使用 24
实例2-2 变量的作用范围 27
实例2-3 常量的使用 29
实例2-4 枚举类型实例 32
实例2-5 结构类型的使用 35
实例2-6 一维数组的使用 38
实例2-7 二维数组的使用 39
实例2-8 重定义数组 41
实例2-9 ReDim和ReDim Preserve语句的比较 43
实例2-10 字符串连接 48
实例2-11 比较运算符 51
实例2-12 逻辑运算符 53
实例2-13 If...Then语句的使用 59
实例2-14 Select Case...语句的使用 61
实例2-15 For循环语句的使用 63
实例2-16 For Each循环语句的使用 65
实例2-17 Do Loop循环语句的使用 67
实例2-18 While...End While循环语句的使用 69
实例2-19 循环嵌套举例以For...Next为例 70
实例2-20 Sub过程的声明和调用实例 78
实例2-21 Function过程的声明和调用实例 80
实例2-22 按值传参和按地址传参的比较 82
第3章 VB.NET面向对象技术 102
实例3-1 创建和引用名字空间 104
实例3-2 类的实例化 108
实例3-3 字段的使用 111
实例3-4 属性的使用 116
实例3-5 创建和引用共享成员 120
实例3-6 类的封装性 121
实例3-7 类的继承 124
实例3-8 类的多态性 127
实例3-9 重载的运用 130
实例3-10 重写的运用 131
实例3-11 隐藏的运用 136
实例3-12 构造函数的运用 140
实例3-13 使用Dispose和Finalize释放资源 142
第4章 VB.NET2005的常用控件 145
实例4-1 TextBox控件和Label控件的使用 152
实例4-2 在StatusStrip中以交互方式使用Spring属性 155
实例4-3 获取或设置选定项及选定项的位置和文本 158
实例4-4 使用Add方法添加列表项 161
实例4-5 使用Insert方法添加列表项 163
实例4-6 添加、删除列表框中的项 165
实例4-7 CheckedListBox控件的应用 171
实例4-8 ComboBox控件的应用 175
实例4-9 ListView控件的应用 182
实例4-10 TreeView控件的应用 188
实例4-11 PictureBox控件的应用 193
实例4-12 ImageList组件的应用 197
实例4-13 RadioButton控件的应用 200
实例4-14 CheckBox控件的应用 205
实例4-15 MenuStrip控件的应用 221
实例4-16 Button控件的应用 226
实例4-17 GroupBox控件的应用 228
第5章 数据库基础 230
实例5-1 创建基本表 258
实例5-2 单表查询 262
实例5-3 向表中插入数据 267
实例5-4 修改表中数据 269
实例5-5 删除表中数据 272
第6章 ADO.NET数据库访问技术 276
实例6-1 向DataSet添加DataTable 289
实例6-2 添加、导航表间关系 293
实例6-3 复制DataSet内容 297
实例6-4 Connection对象的应用 302
实例6-5 Command对象的应用 305
实例6-6 DataReader对象的应用 309
实例6-7 使用DataAdapter填充DataSet 315
实例6-8 更新数据库 319
第7章 常用数据绑定控件 322
实例7-1 将Windows窗体控件绑定到DBNull数据库值 326
实例7-2 排序和筛选ADO.NET数据 329
实例7-3 使用BindingNavigator控件定位数据 333
实例7-4 向BindingNavigator控件添加“加载”、“保存”和“取消”按钮 336
实例7-5 简单数据绑定 339
实例7-6 绑定ListBox控件 342
实例7-7 设置DataGridView控件的大小调整模式 347
实例7-8 设置DataGridView控件的行为和外观 348
实例7-9 创建未绑定的DataGridView控件 352
实例7-10 将数据绑定到Windows窗体DataGridView控件 355
第8章 存储过程 58
实例8-1 创建存储过程 365
实例8-2 使用对象资源管理器创建Transact-SQL存储过程 367
实例8-3 输入和输出参数 370
实例8-4 指定NULL作为参数的默认值 371
实例8-5 处理存储过程返回的不同返回代码 373
实例8-6 使用cursor数据类型返回数据 377
实例8-7 使用ALTER PROCEDURE修改存储过程 380
实例8-8 使用对象资源管理器修改Transact-SQL存储过程 382
实例8-9 在应用程序中调用存储过程 385
实例8-10 具有Input、Output和ReturnValue参数的存储过程调用 387
第9章 SQL Server公共语言运行库 390
实例9-1 编译和部署CLR程序集实例 392
实例9-2 创建标量值函数 405
实例9-3 创建内联表值函数 406
实例9-4 创建多语句表值函数 407
实例9-5 创建CLR函数 408
实例9-6 创建CLR表值函数 412
实例9-7 创建CLR用户定义聚合函数 417
实例9-8 创建聚合函数 423
实例9-9 SqlPipe对象的ExecuteAndSend方法应用 427
实例9-10 SqlContext类的应用 429
实例9-11 使用SqlDataReader实现预处理数据 433
实例9-12 返回消息和表格结果 435
实例9-13 CLR触发器的应用 438
第10章 事务处理 443
实例10-1 创建隐式事务 453
实例10-2 创建可提交事务 460
实例10-3 设置事务隔离级别 467
实例10-4 在.NET中实现保存点 475
实例10-5 创建分布式事务 479
实例10-6 实现IEnlistmentNotification接口 484
第11章 水晶报表设计 491
实例11-1 创建水晶报表 508
实例11-2 打印报表 511
第12章 二进制文件处理 513
实例12-1 使用Stream对象读写文件数据 521
实例12-2 使用StreamReader对象和StreamWriter对象读写文件数据 524
实例12-3 使用FileStream对象读写文件数据 526
实例12-4 使用BinaryReader对象和BinaryWriter对象读写文件数据 527
实例12-5 使用My.Computer.FileSystem对象读写文件 529
实例12-6 向数据库中读写二进制数据 531
第13章 餐饮管理系统 536