第1章 WindowsForms的体系结构与数据绑定 1
1-1数据绑定的基本概念 2
1-2数据绑定的分类 3
1-3到底能和哪些结构与对象进行绑定 3
1-4实现简单的数据绑定 4
1-4-1在运行阶段进行简单的数据绑定 4
1-4-2在设计阶段进行简单的数据绑定 7
1-5如何在WindowsForm窗体中浏览数据 12
1-6实现复杂的数据绑定 22
1-6-1在执行阶段进行复杂的数据绑定 22
1-6-2在设计阶段进行复杂的数据绑定 34
1-7BindingManagerBase类 35
1-8CurrencyManager类 36
1-10BindingContext类 38
1-9PropertyManager类 38
1-11Control.DataBindin-gs属性 41
1-12Binding类 44
1-13Binding.Format与Binding.Parse事件 46
第2章 ADO.NET的基本知识 51
2-1什么是ADO.NET 52
2-2ADO.NET的特性 52
2-2-1已有ADO技术知识的延伸 53
2-2-2支持N-层的程序设计模型 53
2-2-3中断连接 53
2-2-4跨语言支持 54
2-2-5XML支持 54
2-3ADO.NET的体系结构 54
2-4-1把数据在数据集中进行缓存 55
2-4DataSet对象 55
2-4-2独立于数据源 56
2-4-3紧密集成XML 57
2-4-4结构描述定义数据的结构 58
2-5Connection对象 58
2-6Command对象 59
2-7DataReader对象 60
2-8DataAdapter对象 61
2-9NETFramework数据提供者 62
2-9-1SQLServer.NETFramework数据提供者 63
2-9-2OLEDB.NETFramework数据提供者 64
2-9-3ODBC.NETFramework数据提供者 64
2-9-4Oracle.NETFramework数据提供者 65
2-10应该使用哪一种.NETFramework数据提供者 65
结束语 66
第3章 如何连接数据源 67
3-1如何连接SQLServer 68
3-2SqlConnection对象的连接字符串 69
3-3SqlConnection类的成员 74
3-3-1连接对象的属性 74
3-3-2连接对象的方法 79
3-3-3连接对象的事件 80
3-4如何捕捉数据提供者所引发的异常 83
3-5连接池(ConnectionPooling) 85
3-5-1加入连接 86
3-5-2删除连接 86
3-5-3事务支持 87
3-5-4使用连接字符串键值来控制连接池 87
3-5-5监控连接池 90
3-6通过用户界面连接SQLServer 91
3-7如何连接Access数据库 93
3-8如何连接Excel电子表格 94
第4章 如何使用数据命令(SqlCommand) 95
4-1两种数据访问模型的优势比较 96
4-2两种数据访问模型的使用时机 98
4-2-1WebForm网页 98
4-2-2XMLWebService 98
4-2-3WindowsForm 99
4-3如何建立数据命令对象 99
4-4如何使用数据命令来执行Transact-SQL语句 100
4-5如何使用数据命令来执行存储过程 102
4-6如何执行会返回单一值的数据命令 103
4-7如何执行会返回结果集的数据命令 104
4-8如何执行会返回多重结果集的数据命令 109
4-9ExecuteReader方法的重载版本 111
4-10使用数据命令执行数据库操作与修改数据(DDL、INSERT、UPDATE与DELETE) 113
4-11如何将SQLServer数据以XML格式取回 122
4-12如何管理Transact-SQL语句中的引号 124
4-13如何反复使用SqlCommand对象 126
4-14取得与设置数据命令的参数 128
4-14-1取得与设置Transact-SQL语句的参数 128
4-14-2取得与设置存储过程的参数和返回值 138
第5章 如何使用数据读取器(SqlDataReader) 153
5-1基本观念 154
5-2按顺序移到各条记录 155
5-3SqlDataReader对象的属性与方法 159
5-4从数据库取得结构描述信息 169
5-5如何读取、写入与显示SQLServer的image字段的BLOB值 173
5-5-1如何从image字段提取BLOB值 173
5-5-2如何将BLOB值写入数据库 177
5-5-3如何将image字段内的图像数据显示在PictureBox控件中 182
5-5-4如何将PictureBox控件中的图像数据写回image字段 185
5-6使用区块读取与写入BLOB值 188
5-6-1使用区块读取BLOB值 189
5-6-2使用区块写入BLOB值 190
第6章 如何建立与使用DataTable 193
6-1DataTable对象模型 194
6-2建立DataTable对象 195
6-3定义DataTable的结构描述 196
6-4替表加入字段 197
6-4-1使用DataColumn构造函数 198
6-4-2直接使用Columns属性的Add方法 202
6-4-3DataColumn对象的属性 205
6-5建立自动编号字段 207
6-6建立表达式字段 209
6-6-1表达式语法 212
6-6-2用户定义的值 213
6-6-3运算符 213
6-6-4字符串运算符 214
6-6-5通配符 214
6-6-6父/子关联性引用 214
6-6-7汇总 215
6-7定义表的主键 215
6-8如何套用UniqueConstraint条件约束 217
6-8-1UniqueConstraint构造函数的重载版本 219
6-8-2ConstraintCollection.Add方法的重载版本 224
6-9如何新建记录 225
6-10如何编辑记录 228
6-11如何删除记录 232
6-12如何搜索记录 234
6-13记录的状态与版本 237
6-14完善的数据变更操作 239
6-14-1BeginEdit、EndEdit与CancelEdit方法 240
6-14-2接受或拒绝记录的更改 241
6-14-3DataTable.ColumnChanged事件 242
6-15设置字段或记录的自定义错误信息 256
6-16善用DataTable.Select方法 261
结束语 264
第7章 如何建立与使用DataSet 265
7-1DataSet的基本概念 266
7-1-1将数据在数据集中缓存 266
7-1-2独立于数据源之外 267
7-1-3紧密集成XML 268
7-1-5类型与非类型化的DataSet 269
7-1-4结构描述定义数据结构 269
7-1-6类型和非类型化数据集的数据访问比较 270
7-1-7数据集的大小写区分特性 270
7-1-8填入数据集 271
7-1-9记录的位置与浏览 271
7-2数据集的实现流程 271
7-3如何建立数据集 272
7-4如何在数据集当中建立表 272
7-5自行建立DataTable对象并添加到数据集 273
7-6通过数据适配器在数据集当中建立表 276
7-7SqlDataAdapter.Fill方法的重载版本 280
7-8关于SQLServer的decimal类型 290
7-9将现有的条件约束加DataSet 291
7-10表与字段的前后端对应关系 293
7-11建立表之间的关系 301
7-12-1引用完整性 306
7-12外键条件约束 306
7-12-2建立外键条件约束 307
7-12-3如何使用外键条件约束 312
7-13取得与设置数据适配器的命令的参数 313
7-13-1取得与设置Transact-SQL语句的参数 314
7-13-2使用自动生成的命令 332
7-13-3取得与设置存储过程的参数和返回值 336
结束语 348
第8章 使用VS.NET工具建立数据适配器和数据集 349
8-1使用“服务器资源管理器”建立数据适配器 350
8-2使用数据适配器配置向导建立数据适配器 352
8-3以手动方式建立与配置数据适配器 354
8-4配置数据适配器的参数 355
8-5表与字段的前后端对应关系 356
8-6预览数据适配器结果 357
8-7建立数据集的VisualStudio.NET工具 359
8-7-1生成类型化数据集的步骤 360
8-7-2使用组件设计工具 360
8-7-3使用XML设计工具 361
8-8使用组件设计工具建立类型化数据集 361
8-9使用表达式建立数据集字段 363
8-9-1类型化数据集当中的表达式字段 363
8-9-2非类型化数据集中的表达式字段 364
8-10将表加入现有数据集 366
8-11将现有的类型化数据集加入窗体或组件 366
8-12将非类型化的数据集加入窗体或组件 368
8-12-1建立非类型化的数据集 368
8-12-2加入表和字段 369
8-12-4加入关系 372
8-12-3加入条件约束 372
8-13处理强类型中的Null值 373
8-14使用XML设计工具建立DataRelation对象 374
第9章 如何更新数据集数据并写回数据源 377
9-1数据集更新简介 378
9-1-1两阶段更新 378
9-1-2合并数据集 379
9-1-3更新条件约束 380
9-1-4记录的状态与版本 380
9-1-5取得变更的记录 380
9-1-6提交数据集当中的变更 381
9-1-7数据验证 382
9-3如何在数据集表中编辑记录 383
9-2-2在类型化数据集的表中新建记录 383
9-2-1在类型化或非类型化数据集的表中新建记录 383
9-2如何在数据集表中新建记录 383
9-3-1在类型化或非类型化数据集的表中编辑记录 384
9-3-2在类型化数据集的表中编辑记录 384
9-4如何在数据集表中删除记录 384
9-5数据更新事件 385
9-6暂时停止更新条件约束 386
9-7合并数据集 386
9-8提交数据集中的变更 392
9-9识别并返回变更的记录 393
9-9-1检查变更的记录 393
9-9-2提取变更的记录 393
9-9-3在数据集当中搜索个别的记录 394
9-9-4如何取得记录的特定版本 395
9-10-1数据集当中的数据验证 396
9-10如何验证数据 396
9-9-5找出具有错误的记录 396
9-10-2在字段变更期间验证数据 397
9-10-3在记录变更期间验证数据 398
9-11将数据集变更写回数据源 399
9-12如何响应数据库更新错误 402
9-13ADO.NET的并发控制 403
9-13-1并发控制的类型 403
9-13-2ADO.NET与VisualStudio.NET的并发控制 404
9-13-3使用动态SQL实现开放式并发 406
9-13-4使用存储过程实现开放式并发 407
9-13-5如何处理并发错误 408
9-14并发冲突范例 409
第10章 如何使用事务 433
10-1如何在ADO.NET中执行事务 434
10-2如何添加一个分布式事务 437
第11章 如何建立与使用DataView 441
11-1如何建立一个DataView 442
11-1-1DataView构造函数 442
11-1-2DataTable的DefaultView属性 447
11-2将DataView加入窗体或组件 448
11-3使用DataView来排序数据 450
11-4使用DataView来筛选数据 451
11-5查看DataView的内容 454
11-6使用Find方法搜索DataView中的记录 455
11-7使用FindRows方法搜索DataView中的记录 471
11-8使用DataView浏览关系 472
11-9使用DataView来修改数据 474
附录1 System.Data.SqlTypes命名空间 479
附录2 范例安装与使用说明 483