《ADO.NET实用指南》是一本非常实用的指南,它指导你了解专为Web应用程序而设计的第一种数据访问服务。本书为开发者提供了ADO.NET的权威知识,并给出了有效使用它的实用方案。书中首先简要介绍Microsoft统一数据访问战略的历史以及ADO.NET的一系列技术进步。然后把重点转移到如何用ADO.NET与数据库以及.NET的其余部分进行交互。最后通过实战,引导读者通过实例来学习一系列最佳操作方式,从而用ADO.NET构建易于伸缩的、高性能的系统。提供了大量用C#写成的示例代码,配套网站还提供了相应的Visual Basic .NET和C#的实现以及技术更新。附录则详细讲解了从ADO迁移到ADO.NET的策略。\r\n 本书配以简明扼要的讲解、有用的解释以及详细的例子。对于迫切需要了解ADO.NET的开发者而言,本书将是最适合的参考书。
第1部分 ADO.NET基础\r\n\r\n第1章 ADO.NET存在的原因\r\n\r\n1.1 统一数据访问简史\r\n1.2 为什么说ADO.NET是一个更好的数据访问层\r\n1.3 初学ADO.NET\r\n1.3.1 ADO.NET命名空间\r\n1.3.2 ADO.NET数据结构\r\n1.3.3 ADO.NET托管提供程序对象模型 \r\n1.4 小结 \r\n\r\n第2章 用ADO.NET建立连接\r\n\r\n2.1 第一印象 \r\n2.2 连接 \r\n2.2.1 连接字符串\r\n2.2.2 理解集成安全性\r\n2.2.3 更改数据库\r\n2.2.4 连接池 \r\n2.2.5 连接事件 \r\n2.2.6 连接工厂\r\n2.3 获取OLE DB数据库架构信息 \r\n2.4 .NET错误处理\r\n2.5 小结 \r\n\r\n第3章 操纵数据库\r\n\r\n3.1 命令\r\n3.1.1 创建Command对象\r\n3.1.2 命令类型 \r\n3.2 执行命令\r\n3.2.1 定义的结果集\r\n3.2.2 使用参数\r\n3.3 ADO.NET中的数据库事务处理 \r\n3.3.1 隔离级别\r\n3.3.2 SQL Server事务处理保存点\r\n3.3.3 COM+和企业服务\r\n3.4 批处理查询 \r\n3.5 小结 \r\n\r\n第4章 读取数据\r\n\r\n4.1 读取数据 \r\n4.2 DataReader\r\n4.2.1 构造DataReader \r\n4.2.2 DataReader的工作原理\r\n4.2.3 从DataReader中访问数据\r\n4.2.4 什么是结果集\r\n4.2.5 处理多个结果集\r\n4.2.6 处理DataReader元数据\r\n4.3 综合运用\r\n4.3.1 数据库访问\r\n4.3.2 数据对象\r\n4.3.3 Windows窗体代码\r\n4.4 小结\r\n\r\n第2部分 DataSet 详述\r\n\r\n第5章 构建DataSet \r\n\r\n5.1 什么是DataSet\r\n5.1.1 DataSet的构成\r\n5.1.2 DataSet和托管提供程序\r\n5.2 填充DataSet\r\n5.2.1 DataAdapter简介\r\n5.2.2 根据数据库来创建DataSet \r\n5.2.3 根据XML来创建DataSet\r\n5.2.4 以程序化方式创建一个DataSet\r\n5.3 定义DataSet架构 \r\n5.3.1 为什么要在DataSet中使用数据库架构\r\n5.3.2 用DataAdapter来推断架构 \r\n5.3.3 用XSD来定义DataSet架构 \r\n5.3.4 以程序化方式创建DataSet架构 \r\n5.3.5 列架构 \r\n5.4 小结 \r\n\r\n第6章 类型化DataSet\r\n\r\n6.1 什么是类型化DataSet \r\n6.2 生成类型化DataSet\r\n6.2.1 用Visual Studio .NET创建一个类型化DataSet \r\n6.2.2 用XSD.exe来创建类型化DataSet \r\n6.2.3 用批注来自定义生成的代码 \r\n6.3 使用类型化DataSet \r\n6.4 业务对象层的简化 \r\n6.5 小结 \r\n\r\n第7章 操纵DataSet \r\n\r\n7.1 更改数据 \r\n7.1.1 添加行 \r\n7.1.2 删除行\r\n7.1.3 读和写DataRow的值\r\n7.1.4 行的版本 \r\n7.1.5 行的状态 \r\n7.2 DataSet导航 \r\n7.2.1 用关系来导航\r\n7.2.2 DataView \r\n7.3 搜索DataSet\r\n7.3.1 用DataTable.Select进行搜索\r\n7.3.2 用DataView进行搜索\r\n7.4 合并DataSet \r\n7.5 小结 \r\n\r\n第8章 更新数据库\r\n\r\n8.1 断开式数据的麻烦 \r\n8.2 ADO.NET并发性 \r\n8.2.1 DataAdapter如何更新DataSet\r\n8.2.2 实现乐观并发性\r\n8.2.3 实现悲观并发性 \r\n8.2.4 实现破坏式并发性 \r\n8.3 常见的更新问题 \r\n8.3.1 处理含有多个表的DataSet\r\n8.3.2 用本地事务处理来更新数据库\r\n8.3.3 从SQL Server检索新行标识 \r\n8.4 小结\r\n\r\n第3部分 ADO.NET实战\r\n\r\n第9章 ADO.NET和XML \r\n\r\n9.1 .NET和XML\r\n9.2 DataSet和XML\r\n9.2.1 将DataSet数据转换成XML \r\n9.2.2 将DataSet另存为XML\r\n9.2.3 DataSet命名空间\r\n9.2.4 用XML来填充DataSet \r\n9.2.5 DiffGram策略\r\n9.2.6 DataSet架构 \r\n9.3 XmlDataDocument类 \r\n9.3.1 用XPath表达式来搜索DataSet\r\n9.3.2 用XSLT来转换DataSet \r\n9.4 小结 \r\n\r\n第10章 用ADO.NET进行数据绑定\r\n\r\n10.1 .NET中的数据绑定 \r\n10.2 Windows窗体中的数据绑定\r\n10.2.1 简单数据绑定 \r\n10.2.2 复杂绑定 \r\n10.2.3 DataGrid绑定 \r\n10.2.4 主控/详细绑定\r\n10.2.5 使用CurrencyManager类\r\n10.3 ASP.NET中的数据绑定\r\n10.3.1 简单绑定\r\n10.3.2 复杂绑定\r\n10.3.3 数据控件绑定\r\n10.3.4 与DataReader绑定\r\n10.3.5 性能问题\r\n10.4 小结 \r\n\r\n第11章 扩展性和性能 \r\n\r\n11.1 是否应该关心 \r\n11.1.1 设计易于扩展的系统 \r\n11.1.2 在系统中耦合组件\r\n11.2 在ADO.NET问世之前 \r\n11.2.1 连接式数据的问题 \r\n11.2.2 扩展数据库服务器 \r\n11.3 ADO.NET能提供什么帮助 \r\n11.3.1 在Web服务器上进行数据缓存 \r\n11.3.2 扩展数据库数据\r\n11.3.3 实战\r\n11.4 DataReader是否易于扩展\r\n11.5 ADO.NET的性能 \r\n11.5.1 与数据库交互 \r\n11.5.2 与DataSet交互 \r\n11.6 最佳实践 \r\n11.6.1 使用DataSet架构\r\n11.6.2 使用类型化DataSet来创建业务规则层\r\n11.6.3 减少到数据库的往返行程\r\n11.6.4 提前和经常缓存数据 \r\n11.6.5 起用DBA \r\n11.6.6 将开发者与数据库隔离\r\n11.6.7 在ASP.NET中有限度地使用DataReader \r\n11.6.8 使用连接工厂 \r\n11.6.9 不要硬编码连接字符串\r\n11.6.10 将用户排除在数据库之外 \r\n11.7 小结 \r\n\r\n附录A ADO.NET迁移策略 \r\n\r\nA.1 总体规划迁移到ADO.NET \r\nA.1.1 重新结构化ADO应用程序 \r\nA.1.2 ADO.NET不支持什么 \r\nA.2 ADO.NET与ADO对象的对应关系\r\nA.2.1 将ADO映射到.NET数据类型\r\nA.2.2 提供程序和托管提供程序\r\nA.2.3 迁移连接 \r\nA.2.4 迁移Command对象 \r\nA.2.5 迁移Recordset \r\nA.2.6 在ADO.NET中接受ADO Recordset \r\nA.3 小结
ADO.NET不是ADO,这是本书要强调的一个重要事实。要真正理解ADO.NET,不能只知道如何获取数据库数据,或者只知道如何更新数据库,而是要理解为什么设计ADO.NET。ADO.NET用于访问数据库的方式与传统的Microsoft数据访问策略完全不同。它和ADO完全是两码事。
本书既不是ADO.NET的入门参考手册,也不是讲解ADO.NET内部工作原理的高阶书。相反,它的目的是帮助开发者快速完成自己的工作。本书的宗旨是为ADO.NET的使用者提供清楚、明确的建议。
面向的读者
本书面向具有.NET和数据库基础知识的开发者。它的目的是帮助繁忙的开发者快速吸取ADO.NET知识,然后用它实际完成自己的工作。本书不要求读者具有ADO的经验。当然,如果有的话更佳。
第1部分 ADO.NET基础
第1部分帮助您掌握一些必要的基础知识。
第1章 ADO.NET存在的原因
解释如何操纵ADO.NET之前,本书解释了ADO.NET问世的原因。本章介绍了Microsoft数据访问的历史,解释了ADO.NET的历史由来。
第2章 用ADO.NET建立连接
对数据库进行任何操作之前,首先必须知道如何连接它。第2章解释如何通过ADO.NET来连接一个数据库。我们讨论 了连接字符串、许多托管提供程序中都有的连接池、连接创建模式以及如何尽可能减少与数据库的连接。
第3章 操纵数据库
我们与数据库惟一的接触是执行命令,并处理那些命令的结果。本章重点讲解了如何使用Command对象让数据库为我们工作。我们解释了Command对象与简单SQL语句、参数化查询、存储过程以及批处理查询配合使用的情况。
第4章 读取数据
DataReader是ADO.NET用于从数据库中获取表的方法。在第4章,本书解释了如何使用DataReader来访问数据库信息,并展示了如何写一个类,该类将DataReader用作自己的数据源。
第2部分 DataSet 详述
DataSet是ADO.NET的核心。要想有效地使用DataSet,必须理解如何用它解决日常问题。
第5章 构建DataSet
本章解释了DataSet是什么,以及为什么要使用它们。本章介绍了许多生成DataSet的方法,包括使用DataAdapter、XML以及代码来创建它们的方法。本章还全面地解释了如何使用DataSet架构。
第6章 类型化DataSet
类型化DataSet是一种有用的工具,有了它,您的代码能适应不断变化的架构。第6章探讨了这种新的编程模型,解释了如何创建类型化DataSet,以及如何将其用作业务逻辑层的基础(一般情况下,业务逻辑层只能人工编码)。本章还展示了如何从Visual Studio .NET和命令行创建类型化DataSet。
第7章 操纵DataSet
知道如何创建DataSet之后,接着要掌握如何用它们来操纵数据,以及如何在DataSet中组织数据。本章向读者解释了DataSet模型的工作原理,以及如何用它来完成工作。
第8章 更新数据库
在DataSet中完成对数据的操纵之后,接着必须根据那些更改来更新数据库。本章指导您如何规划断开式并发性,用实例演示了如何使用内建的乐观并发性,以及如何实现悲观和破坏并发性。除此之外,本章还讨论了如何处理违反并发性的情况,并用具体的例子阐明解决方案。
第3部分 ADO.NET实战
掌握如何访问数据、操纵数据以及更新数据库之后,接着要理解如何让ADO.NET与.NET框架的其他部分进行交互。
第9章 ADO.NET和XML
XML就是数据。ADO.NET是用于.NET的一个数据框架。正是因为这两个事实,所以ADO.NET与XML框架紧密地集成,使不同的数据库数据能混合使用。本章探讨了如何以通用的方式来对待每一种类型的数据。
第10章 用ADO.NET进行数据绑定
.NET有两种基于表单的技术:Windows窗体和Web窗体。幸运的是,ADO.NET容器(DataReader,DataSet和DataTable)都支持直接数据绑定。本章解释了具体的操作过程。
第11章 扩展性和性能
本章归纳了一系列有用的设计建议,便于您构建易扩展的、高性能的系统。除此之外,本章还列出了使用ADO.NET和数据库开发的一系列常用最佳实践。
附录A ADO.NET迁移策略
我们不能想当然地认为所有.NET代码都是新开发的。有许多开发者需要将代码迁移到.NET。本附录针对混合型系统提供了大量可行的策略,便于您让ADO.NET数据结构来读取ADO结构,或者让ADO数据结构来读取ADO.NET。