《ADO.NET技术内幕》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:(美)David Sceppa著;梁超等译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2003
  • ISBN:7302072035
  • 页数:599 页
图书介绍:本书共分5部分,包括14章和2个附录,细致深入地介绍了ADO.NET。具体内容包括:使用DataForm向导创建ADO.NET程序、连接和查询数据库、使用PattaAdapter对象检索数据、线下使用数据、生成基于Windows的应用程序和Web应用程序等。

目录 3

第Ⅰ部分 3

开始使用ADO.NET 3

第1章ADO.NET概述 3

1.1 为什么引入新的对象模型? 3

1.2 ADO.NET 对象模型 4

1.2.1NET数据提供程序 5

1.2.2 为什么使用分离的类和库 7

1.2.3本书对NET数据提供 8

程序的介绍 8

1.2.4连接的对象 9

1.2.5断开连接的对象 12

1.2.6元数据 17

1.2.7强类型DataSet对象 18

1.3常见问题 20

第2章使用数据窗体向导生成ADO 21

NET应用程序 21

2.1 演示 21

2.2用数据窗体向导生成 22

数据绑定窗体 22

2.2.1选择连接 24

2.2.2从数据库中选择表 27

2.2.3在DataSet 中创建关系 28

2.2.4选择要显示的列 29

2.2.5选择显示样式 30

2.3 使用新的数据绑定窗体 30

2.3.1 在新数据绑定窗体中 32

显示数据 32

进行级联更改 33

2.3.3 向数据库提交更改 33

2.3.2利用DataRelation对象 33

2.3.4组件托盘 37

2.4 以数据窗体向导作为起始点 38

2.5常见问题 39

第Ⅱ部分 43

连接:使用NET数据提供程序 43

第3章 与数据库连接 43

3.1 使用Connection对象 44

3.1.1 创建Connection对象 47

3.1.2连接字符串 49

3.1.3 开放及关闭连接 53

3.1.4连接池 54

3.1.5销毁连接 56

3.1.6使用连接创建其他对象 57

3.1.7获取数据库架构信息 59

中处理Connection对象 61

3.2 Visual Studio.NET设计时特性 61

3.2.1在【服务器资源管理器】 61

3.2.2 向【服务器资源管理器】 63

中添加数据连接 63

3.2.3 向应用程序添加连接 65

3.2.4在运行时使用新连接 67

3.2.5 代码到哪里去了? 68

3.3 OleDbConnection对象参考 69

3.3.1 OleDbConnection 69

对象的属性 69

3.3.2 OleDbConnection 73

对象的方法 73

3.3.3 OleDbConnection对象事件 79

3.4 常见问题 82

4.1.1 创建Command对象 84

4.1 在代码中使用Command对象 84

第4章 数据库查询 84

4.1.2执行无返回行的查询 85

4.1.3 用DataReader对象检查 88

查询结果 88

4.1.4执行返回单值的查询 96

4.1.5执行参数化查询 97

4.1.6调用存储过程 99

4.1.7从输出参数中获取数据 101

4.1.8在Transaction中执行 103

查询 103

4.2 在Visual StudioNET中 104

创建Command对象 104

4.2.1 从工具箱中拖放 104

4.2.2指定一个连接 104

4.2.3 使用查询生成器 105

4.2.4在代码中使用新的 107

Command对象 107

4.2.5从【服务器资源管理器】 108

中拖放 108

4.3 Command、DataReader以及 109

Parameter对象参考 109

4.3.1 OleDbCommand 109

对象的属性 109

4.3.2 OleDbCommand 113

对象的方法 113

4.3.3 OleDbDataReader 117

对象的属性 117

4.3.4 OleDbDataReader 118

对象的方法 118

对象的属性 123

4.3.6 OleDbParameter 123

4.3.5创建Parameter对象 123

4.4常见问题 126

第5章用DataAdapter对象 137

获取数据 137

5.1什么是DataAdapter对象 138

5.1.1 DataAdapter与其他 138

查询对象的不同之处 138

5.1.2 DataAdapter剖析 140

5.2创建和使用DataAdapter对象 143

5.2.1 创建DataAdapter 143

5.2.2 DataAdapter构造函数 144

5.2.3从查询中获取结果 145

5.2.4将查询结果映射到 150

DataSet中 150

5.2.5处理批查询 152

5.2.6从存储过程中获取行 154

5.2.7获取架构信息 154

5.3 在Visual Studio.NET中 155

创建DataAdapter对象 155

5.3.1 从工具箱中拖放 155

DataAdapter 155

5.3.2使用【数据适配器 156

配置向导】 156

5.3.3从【服务器资源管理器】 160

中拖放 160

5.3.4预览DataAdapter的结果 161

5.3.5 检查向导所生成的代码 161

5.4 DataAdapter参考 162

5.4.1 DataAdapter对象的属性 162

5.4.2 DataAdapter对象的方法 167

5.4.3 DataAdapter对象的事件 173

5.5常见问题 176

第 Ⅲ部分 181

处理脱机数据-ADO.NET Data Set 181

第6章处理DataSet对象 181

6.1 DataSet的特性 181

6.1.1处理脱机数据 181

6.1.2浏览、排序、搜索 182

和过滤 182

6.1.3处理分级数据 182

6.1.4缓存更改 182

6.1.5 XML的完整性 183

6.1.6统一功能 183

Fill创建的结构 184

6.2.2 查看调用DataAdapter 184

6.2.1创建数据集对象 184

6.2 使用DataSet对象 184

6.2.3 查看DataAdapter 186

返回的数据 186

6.2.4校验DataSet中的数据 189

6.2.5编写代码创建Data 192

Table对象 192

6.2.6修改DataTable内容 206

6.3 在Visual Studio.NET中 217

使用DataSet对象 217

6.3.1 由DataAdapter对象 217

生成DataSet 217

6.3.2从零创建新DataSet 219

6.3.3创建非类型化DataSet 222

6.4 DataSet、DataTable、DataColumn、DataRow、UniqueConstraints和ForeigkeyConstraints对象参考 226

6.4.1 DataSet对象的属性 226

6.4.2 DataSet对象的方法 230

6.4.3 DataSet对象的事件 233

6.4.4 DataTable对象的属性 234

6.4.5 DataTable对象的方法 238

6.4.6 DataTable对象的事件 242

6.4.7 DataColumn对象的属性 243

6.4.8 DataRow对象的属性 249

6.4.9 DataRow对象的方法 251

6.4.1 0 UniqueConstraint 257

对象的属性 257

6.4.11 ForeignkeyConstraint 258

对象的属性 258

6.5常见问题 259

第7章处理关系数据 261

7.1.1 联合查询 262

7.1 关系数据访问概述 262

7.1.2单独查询 263

7.1.3层次化的ADO Recordset 264

对象 264

7.1.4 ADO.NET的DataRelation 265

对象 265

7.2在代码中使用DataRelation 266

对象 266

7.2.1 创建DataRelation对象 266

7.2.2查找关系数据 268

7.2.3 使用DataRelation 272

对象验证数据 272

7.2.4 自引用DataRelationship 275

对象 275

7.2.5多对多关系 277

DataRelation对象 280

DataColumn对象中使用 280

7.2.6在基于表达式的 280

7.2.7层叠更改 283

7.2.8 Join查询 284

7.3 在Visual Studio.NET中 285

创建DataRelation对象 285

7.3.1 向强类型DataSet 285

添加DataRelation 285

7.3.2 向一个非类型化DataSet 287

添加DataRelation 287

7.4 DataRelation对象引用 287

7.4.1 DataRelation对象的 287

属性 287

7.5常见问题 290

8.1 使用DataTable对象的搜索和筛选功能 295

8.1.1根据主键值查找行 295

第8章排序、搜索和筛选 295

8.1.2执行更具动态的搜索 297

8.1.3执行通配符搜索 299

8.1.4使用分隔符 299

8.1.5使用附加Select方法 301

8.2 DataView对象 303

8.2.1 DataView对象从 303

DataTable中返回数据 303

8.2.2 DataView对象不是 304

SQL查询 304

8.3在代码中使用DataView对象 304

8.3.1 创建DataView对象 305

8.3.2 使用RowStateFilter 306

属性 306

所有可用数据各行 307

8.3.4 通过DataView检查 307

对象 307

8.3.3 使用DataRowView 307

8.3.5 在DataView中 309

搜索数据 309

8.3.6修改DataRowView 311

对象 311

8.4 在Visual Studio.NET中 312

创建DataView对象 312

8.4.1 在设计器中添加新 312

DataView对象 312

8.4.2设置DataView 313

对象的属性 313

8.5 DataView对象参考 313

8.5.1 DataView对象的属性 313

8.5.2 DataView对象的方法 317

8.5.4 DataRowView对象的 321

属性 321

8.5.3 DataView对象的 321

ListChanged事件 321

8.5.5 DataRowView对象的 323

方法 323

8.6常见问题 324

第9章使用强类型DataSet对象 330

9.1创建强类型DataSet对象 331

9.1.1 困难的方法 331

9.1.2简单的方法 333

9.2使用强类型DataSet对象 336

9.2.1 添加行 336

9.2.2查找行 338

9.2.3 编辑行 339

9.2.4处理空数据 340

9.2.5处理层次数据 341

9.2.6 其他DataSet、DataTable 342

和DataRow特性 342

9.3何时使用强类型DataSet对象 343

9.3.1 软件组件与瑞士军刀 343

9.3.2设计时的优势 344

9.3.3运行时的优势 345

9.3.4其他注意事项 347

9.3.5方法的选择 350

9.4常见问题 350

第10章 向数据库提交更新 353

10.1 有关历史 356

提交更新的缺点 357

10.1.2用ADO Recordset对象 357

更新的好处 357

10.1.1用ADO Recordset提交 357

10.2 用ADO.NET Command对象 358

提交更新 358

10.3 使用ADO.NET DataAdapter 369

对象提交更新 369

10.4手工配置DataAdapter对象 370

10.4.1 绑定参数简介 370

10.4.2用存储过程提交更新 375

10.4.3提供自己的更新逻辑 381

10.5 使用CommandBuilder对象 382

生成更新逻辑 382

10.5.1 CommandBuilder如何 382

生成更新逻辑 382

的优点和缺点 384

10.5.2 使用CommandBuilder 384

10.6使用【数据适配器配置向导】生成更新逻辑 385

10.6.1 检查DataAdapter 386

的结构 386

10.6.2构建更新逻辑的选择 386

10.6.3使用存储过程提交更新 387

10.6.4使用向导的优点和缺点 391

10.7关于更新的其他注意事项 391

10.7.1 开放式并发选项 391

10.7.2使用空值 395

10.7.3 在事务中提交更新 396

10.7.4使用TableMappings 400

集合 400

10.7.5最佳更新方式 403

对象的属性 404

对象的方法 404

10.8.2 OleDbCommandBuilder 404

10.8 OleDbCommandBuilder 404

10.8.1 OleDbCommandBuilder 404

对象参考 404

10.9常见问题 407

第11章 高级更新场景 413

11.1 在提交更新后刷新一行 413

11.1.1 在提交更新后获取为 414

时间戳列新生成的值 414

11.1.2在提交更新后使用 415

成批查询获取数据 415

RowUpdated事件 416

DataAdapter对象的 416

获取数据 416

11.1.3 用输出参数获取新数据 416

11.1.4在提交更新之后用 416

11.1.5时间戳示例应用程序 418

11.2获取新生成的自动递增值 419

11.2.1 使用SQL Server 419

11.2.2使用Access 2000 422

11.2.3使用Oracle序列 423

11.2.4获取自动递增值的 425

示例应用程序 425

11.3使用SQL Server的 426

NOCOUNT设置 426

11.4提交层次化更改 429

11.4.1 提交挂起的插入和删除 429

11.4.2使用自动递增值和 432

关系数据 432

节省带宽 434

11.5分离和重新集中改变 434

11.5.1 用GetChanges方法 434

11.6得体地处理失败的更新尝试 444

11.6.1 事先为冲突做出计划 444

11.6.2通知用户失败 445

11.6.3 提取冲突行的当前内容 447

11.6.4如果第一次没有 448

成功 448

11.6.5冲突示例应用程序 449

11.7使用分布式事务 450

11.7.1 事务协调器和 452

资源管理器 452

11.7.2NET框架中的 452

分布式事务 452

11.7.4构建自己的组件 453

数据库支持 453

11.7.3对分布式事务的 453

11.7.5分布式事务示例 457

应用程序 457

11.7.6使用组件服务的 457

其他好处 457

11.7.7在处理复杂更新方案 457

时使用ADO.NET 457

11.8常见问题 458

第12章使用XML数据 459

12.1建立XML和数据访问 459

之间的桥梁 459

12.2读取和写入XML数据 460

12.2.1 DataSet对象的 460

XML方法 460

12.2.2 GetXml方法 460

的ADO.NET属性 464

12.2.3推断架构 464

12.2.4影响XML文档架构 464

12.2.5缓存更改和XML文档 466

12.3 DataSet+XmlDocument= 468

XmlDataDocument 468

12.3.1 使用XmlData 469

Document对象 469

12.3.2将DataSet作为XML 469

文档访问 469

12.3.3将更新缓存到XML文档 470

12.4从SQL Server 2000中 472

获取XML数据 472

12.4.1 使用SELECT…FOR 472

XML查询 472

XmlDocument 476

将数据装载到 476

12.5 SQL XML.NET数据提供程序 476

12.5.1 使用SqlXmlCommand 476

12.5.2使用SqlXmlAdapter将 477

数据装载到DataSet 477

12.5.3使用模板查询 478

12.5.4使用XPath查询 481

12.5.5 应用XSLT转换 484

12.5.6提交更新 484

12.6一个简单的ADO.NET和 488

XML例子 488

12.7条条大路通罗马 489

12.8 ADO.NET和XML: 490

快乐的一对 490

12.9常见问题 490

的应用程序 495

13.1 用数据绑定快速生成用户界面 495

第Ⅳ部分 495

第13章生成高效的基于Windows 495

用ADO.NET构造高效的应用程序 495

13.1.1 用数据绑定生成用户 496

界面的步骤 496

13.1.2数据绑定小结 518

13.2应用程序设计考虑事项 518

13.2.1 只提取需要的数据 518

13.2.2更新策略 518

13.2.3 连接策略 521

13.2.4使用BLOB数据 523

13.3 常见问题 528

应用程序的出色工具 531

14.1.1 ASP.NET是生成Web 531

14.1 Web应用程序简介 531

第14章生成高效的Web应用程序 531

14.1.2无状态优缺点 532

14.2连接到数据库 532

14.2.1 使用受信任连接 532

14.2.2使用Access数据库 534

14.3在Web页中显示数据 535

14.3.1 使用DataBinder.Eval 535

14.3.2 将DataGrid控件 538

绑定到查询结果 538

14.4在往返行程之间缓存数据 539

14.4.1 无状态方式——不维护 540

状态 540

14.4.2在客户端缓存数据 540

维护状态 543

14.4.3在Web服务器上 543

14.4.4 在数据库中维护状态 545

14.4.5 维护状态的准则 546

14.5 分页 547

14.5.1 Web DataGrid的 548

分页功能 548

数据的查询 551

14.5.3生成返回一页 551

方法的分页功能 551

14.5.2 DataAdapter Fill 551

14.5.4 PagingOptions示例 552

14.6在Web页面中编辑数据 553

14.6.1 用DataGrid简化 553

数据编辑 553

14.6.2 处理DataGrid的 554

Editing事件 554

14.6.3向数据库提交更改 555

14.6.4购物车示例 556

14.7常见问题 557

第V部分 563

附录 563

附录A使用其他NET数据提供程序 563

A.1 SQL Client.NET数据提供程序 563

A.1.1 命名参数与参数标记 563

A.1.2 使用SqlConnection连接 564

到SQLServer数据库 564

A.1.3 使用SqlDataAdapter 565

获取查询结果 565

A.1.4使用SqlCommand和Sql 565

DataReader对象 565

A.1.5 GetSql〈DataType〉方法 567

和SqlTypes命名空间 567

A.1.6调用存储过程 568

A.1.7 获取数据库架构信息 570

A.2 ODBC.NET数据提供程序 571

A.2.1 使用OdbcConnection 571

连接到数据库 571

A.2.2使用参数查询 572

A.2.3 用OdbcDataAdapter 573

获取查询结果 573

A.2.4用OdbcDataReader检查 573

查询的结果 573

A.2.5调用存储过程 575

A.2.6获取数据库架构信息 576

A.3 Oracle Client.NET数据提供程序 576

获取查询结果 577

A.3.2使用参数查询 577

A.3.3用OracleDataAdapter 577

连接Oracle数据库 577

A.3.1 用OracleConnection 577

A.3.4 用OracleDataReader 578

检查查询结果 578

A.3.5 Oracle特定的数据类型 579

A.3.6调用存储过程 580

A.3.7 从Oracle REF游标中 581

提取数据 581

A.3.8 获取数据库架构信息 583

A.4常见的跨提供程序操作问题 584

A.4.1 编写可在提供程序 584

之间移植的代码 584

A.4.2确定正确的NET提供 588

程序数据类型 588

B.1 ADO.NET Ad Hoc Query Tool 591

附录B工具 591

B.1.1 连接到数据库 592

B.1.2添加NET数据提供程序 592

B.1.3执行查询 593

B.1.4查看查询架构信息 593

B.1.5 提交更新 595

B.1.6应用程序设置 595

B.2 ADO.NET DataAdapter Builder 596

指定更新逻辑 597

B.3 ADO.NET Navigation Control 598

B.3.1 在Visual Studio.NET 599

工具箱中添加ADO.NET 599

Navigation控件 599

B.3.2 设置ADO.NET Navigation 599

控件的属性 599

B.3.3 设置ADO.NET Navigation 599

控件的其他属性 599