了解ADO.NET基础具体内容
掌握ADO.NET基础必须掌握ADO.NET另外一个核心常用成员--数据提供者(Data Provider)。数据提供者(也称为托管提供者Managed Provider)是一个类集合,这样才可以正常的进行工作。
获取和处理数据看起来是很直截了当的工作,但在过去十年里,应用使用数据的方法反复改变了多次。开发人员从简单的使用本地数据的客户端应用转移到了基于专业集中化的数据库的分布是系统上。同时,数据访问技术得到了发展。如果你有使用微软语言的经验,你可能已经听过(甚至用过)ADO.NET基础数据访问技术的一些名词,包括ODBC,DAO,RDO,RDS和ADO。
.NET框架有它自己的数据访问技术---ADO.NET基础,ADO.NET基础包含了可管理的类。这些类允许.NET应用连接到数据源(通常是关系数据库),执行命令,并且管理未连接的数据。ADO.NET基础的一点神奇之处是它允许你为Web应用写的数据访问代码与C/S桌面应用的代码差不多的方式,甚至与0连接到本地数据库的单用户应用一样的。
本章描述了ADO.NET基础的结构和ADO.NET基础数据提供者。你会学习到ADO.NET基础的基础,如打开连接,执行SQL语句或存储过程,获得查询的结果。你也会学习如何防止SQL注入攻击和使用事务。
ADO.NET基础在.NET2.0里的变化如果你已经习惯了.NET1.1编程,你会想知道在最新的ADO.NET基础中有哪些亲折内容。ASP.NET应用最大的变化是数据绑定模型(在第9章和第10章描述). 数据绑定使你能够在编写数据显示程序时, 减少大量代码, 你甚至可以不写一行代码.(如果你愿意面对使用页面进行支付时具有很少的灵活性, 优化相当困难的局面的话).
尽管有了新的数据绑定模型, ADO.NET基础的底层变化并不大。多数变化是内部的(如DataSet串行格式更加浓缩,占用更小的内存),或者对那些在未来的Web应用中用处不大的装饰性内容进行了修改(如用于在两个数据库服务器间快速传整整个表的新的SQL批量拷贝特征)。
在.NET2.0 Beta版中,一些特征被去掉了(如为了获得查询的部分结果的内建页支持,为关系映射而开发的ObjectSpaces系统,ADO.NET基础使Dataset-to-XML会话功能更强的xmlAdapter,等等)。这些功能可以在分离的工具或者后续版本的.net中找到,但现在的程序员还得不得到这便利。
那么,那到底给我们带来了什么呢?这里列举了一些真正吸引人的变化:
提供者工厂(Provider factories):通用数据访问代码(也就是写一次就能应用于多个不同数据库的代码)之梦在.NET2.0中获得了巨大的飞跃。这个飞跃来自于提供者工厂。提供者工厂是一个新的组件,它能够快速地创建强类型的连接(connection),命令(command)和数据适配器(DataAdapter)对象。在这一章中你会了解到它。
改变通知(Change notification):为了创建确实可扩展的Web应用,你需要缓存从数据库获得的数据,使它能够重用,而不需要每次都连接到数据源。但是,缓存的引入可能会导致过期信息(out-of-date information),ADO.NET基础包含了新的改变通知特征,以便于数据库的记录更新后可以自动移除缓存的数据。这个内容将在第11章中介绍。