第1章 磁盘、文件夹与文件的处理技巧 1
条款1 Visual Basic 2005中文件处理方法综述 1
条款2 路径指定方式 1
条款3 使用DriveInfo类取得计算机的磁盘信息 2
条款4 使用My.Computer.FileSytem对象取得计算机的磁盘信息 9
条款5 如何列举目录 10
条款6 使用My.Computer.FileSystem对象取得目录信息 13
条款7 .NETFramework 2.0对GetDirectories方法的强化 16
条款8 善用My.Computer.SpecialDirectories对象 18
条款9 善用Environment.GetFolderPath方法 20
条款10 如何取得文件的相关信息 21
条款11 使用My.Computer.FileSystem对象取得文件信息 26
条款12 .NET Framework 2.0对GetFiles方法的强化 28
条款13 如何建立目录 29
条款14 如何移除一个目录 30
条款15 如何移动一个目录 33
条款16 如何更改目录的名称 34
条款17 如何复制文件 34
条款18 如何更改文件的名称 36
条款19 如何删除文件 36
条款21 如何从文本文件读取数据 38
条款20 如何使一个文件成为只读的或是可读取及写入 38
条款22 使用超方便的ReadAllText与ReadAllLines方法来读取文本文件 43
条款23 如何解析文本文件 45
条款24 如何解析含有多种格式的文本文件 49
条款25 如何将文本数据写入文本文件 51
条款26 使用超方便的AppendAllText与My.Computer.FileSystem.WriteAllText方法写入文本文件 53
条款27 如何建立一个文本文件 54
条款28 使用超便利的WriteAllText与WriteAllLines方法建立一个文本文件 55
条款29 如何读取一个二进制文件 56
条款30 使用超方便的ReadAllBytes方法读取二进制文件 57
条款31 如何将数据写入一个二进制文件 58
条款32 使用超方便的WriteAllBytes方法写入一个二进制文件 59
条款33 如何比较两个文件的内容是否完全相同 60
条款34 如何使用FileSystemWatcher组件监视文件系统事件 61
条款35 如何建立与使用临时文件 63
第2章 探讨IO的高级议题 66
条款36 如何压缩与解压缩文件 66
条款37 仿真建立一个简易版的压缩软件 71
条款38 账户专属的文件加密与解密 83
条款39 如何变更文件与目录的访问控制列表(ACL) 85
条款40如何访问串行端口 91
条款41 什么是数据绑定 96
第3章 探讨Windows Forms数据绑定 96
条款42 在列表上使用简单的数据绑定 98
条款43 类型转换 100
条款44 格式化 100
条款45 错误处理 101
条款46 同步化注意事项 105
条款47 数据变更的反应时机 106
条款48 属性变更通知 108
条款49 列表变更通知 112
条款50 当使用数据绑定时为何无法移出控件与关闭窗体 117
条款51 为什么DataSourceUpdateMode.OnProperty Changed对ADO.NET数据源没有作用 122
条款52 如何使用简单绑定显示多个数据源属性 125
条款53 探索ComboBox与ListBox控制项的数据绑定 127
条款54 如何将一个Null或DBNull项目新增至所绑定的ComboBox控件 142
条款55 如何让ComboBox控件显示多个数据源属性 144
条款56 为什么我的ComboBox控件在数据绑定时加载速度很慢 145
条款57 如何清除已绑定的ListBox、ComboBox或CheckedListBox控件的项目 145
条款58 探索BindingSource组件 145
条款59 探索BindingNavigator控件 178
条款60 如何实现IBindableComponent接口 187
第4章 如何连接数据源 190
条款61 如何构建连接字符串 190
条款62 如何根据用户输入动态建立正确的连接字符串 196
条款63 如何连接至Access数据库 197
条款64 如何连接至Excel工作簿 198
条款65 如何使用文件名路径来连接SQL Server数据库 199
条款66 如何将SQL Server数据库文件附加至SQL Server实例 202
第5章 探讨数据集模型的数据存取技巧 204
条款67 该使用哪一种数据访问模型 204
条款68 了解DataSet对象 207
条款69 数据集的实现流程 210
条款70 如何建立数据集 210
条款71 如何建立一个独立存在的数据表对象 211
条款72 善用SqlTypes 215
条款73 如何替数据表建立自动编码字段 218
条款74 如何替数据表建立表达式字段 219
条款75 如何定义数据表的主码 224
条款76 如何引用UniqueConstraint约束 226
条款77 使用XML架构来定义数据表的架构 228
条款78 如何新增数据行 229
条款79 如何编辑数据行 231
条款80 如何删除数据行 232
条款81 探讨数据行的状态与版本 234
条款82 完善的数据异动操作 236
条款83 如何将后台数据加载一个既存的数据表对象 244
条款84 如何将XML数据加载一个既存的数据表对象 245
条款85 如何在数据集中建立数据表 247
条款86 自行建立DataTable对象并新增至数据集 247
条款87 通过数据适配器在数据集中建立数据表 249
条款88 使用DataSet的Load方法在数据集中建立数据表 258
条款89 关于SQL Server的decimal型 260
条款90 使用DataTableReader快速枚举数据表的内容 261
条款91 将现有的约束加入DataSet 263
条款92 数据表与字段的前后端对应关系 266
条款93 建立数据表之间的关系 270
条款94 建立外码约束 275
条款95 如何使用外码约束 279
条款96 取得与设定数据适配器命令的参数 280
条款97 善用数据适配器全新的批次更新功能 303
第6章 探讨数据命令模型的数据存取技巧 309
条款98 如何枚举SQL Server实例 309
条款99 如何枚举SQL Server的数据库、数据表与视图表 310
条款100 如何使用数据命令执行Transact-SQL语句 313
条款101 如何使用数据命令执行存储过程 314
条款102 如何执行会返回单一值的数据命令 316
条款103 如何执行会返回结果集的数据命令 317
条款104 如何执行会返回多结果集的数据命令 320
条款105 使用数据命令执行数据库操作与修改数据(DDL、INSERT、UPDATE与DELETE) 322
条款106 如何取得与设定数据命令的Transact-SQL语句的参数 328
条款107 如何取得与设定数据命令的存储过程的参数和返回值 335
第7章 探讨大型对象的存取秘诀 347
条款108 什么是大型对象 347
条款109 以数据流形式来读取数据库中的LOB 348
条款110 以一整列加载方式来读取数据库中的LOB 354
条款111 如何将LOB写入数据库 359
条款112 如何将字段内的二进制图数据显示在PictureBox控件中 364
条款113 如何将PictureBox控件中的二进制图像数据写回字段 366
条款114 结合使用SQL Server 2005的UPDATE.WRITE语句 369
条款115 什么是多活动结果集 375
第8章 如何使用多活动结果集 375
条款116 如何启用与停用多活动结果集 379
第9章 如何执行异步数据存取操作 385
条款117 什么是异步的数据存取操作 385
条款118 使用轮询来实现异步数据存取 385
条款119 使用回调来实现异步数据存取——最佳作法 388
条款120 使用WaitHandle来实现异步数据存取 391
第10章 如何使用SqIBulkCopy对象来执行大量复制操作 394
条款121 关于大量复制操作 394
条款122 如何执行单一次的大量复制操作 394
条款123 如何执行多次的大量复制操作 403
条款124 如何在事务中执行大量复制操作 405
第11章 如何存取SQL Server 2005的XML数据类型的数据 410
条款125 如何提取数据读取器中的XML数据类型字段值 410
条款126 以XML作为数据命令的参数 412
第12章 探讨DataSet与XML的数据交换技巧 414
条款127 DataSet与XML概述 414
条款128 从DiffGram谈起 414
条款129 将XML的内容载入至DataSet 419
条款130 合并来自XML的数据 429
条款131 将DataSet的内容写出成XML数据 435
条款132 嵌套DataRelation 442
条款133 将字段对应至XML元素、属性与文字 448
条款134 将DataSet的内容写出成XML时如何格式化字段数据 451
条款135 将XML的架构加载至DataSet 453
条款136 将DataSet架构信息写出成XML架构 457
条款137 使用XmlDataDocument来同步化DataSet 458
条款138 根据XML架构来产生DataSet关系型结构 468
条款139 将XML架构约束对应至DataSet约束 470
条款140 根据XML架构来产生DataSet关系 476
条款141 了解约束和关系的事务关系 483
条款142 根据XML来推断DataSet关系型结构 487
条款143 如何自选数据列类型 492
第13章 探讨DataGridView控件重要开发技巧 492
条款144 总览DataGridView控件 507
条款145 如何使用数据列的上下文菜单 519
条款146 如何使用DateTimePicker控件来编辑单元格的日期数据 526
条款147 如何使一个单元格不能被编辑 529
条款148 如何停用一个单元格 529
条款149 如何防止用户移入一个单元格 531
条款150 如何让单元格中的文字随着宽度换行 531
条款151 如何隐藏一个数据列 531
条款152 当用户尝试删除数据行时如何显示确认对话框 531
条款153 如何建立主从式窗体 532
条款154 如何自动根据文件的扩展名或类型来启动相应的应用程序并加载文件 533
第14章 探讨综合性的开发主题 533
条款155 如何关闭其他应用程序或其他应用程序的特定线程 534
条款156 如何得知所启动的线程已经结束执行 535
条款157 如何等待所启动的线程执行完毕 536
条款158 如何传送按键给其他应用程序 538
条款159 如何以程序控制的方式启动默认的浏览器 539
条款160 如何使用全新的System.Net.Mail.MailMessage类来撰写邮件传送程序 540
条款161 如何产生与比较哈希值 547
条款162 如何加密与解密文本文件 549
条款163 善用全新的BackgroundWorker组件设计异步界面 554
附录A 范例安装与使用说明 561