.NET框架继Java之后,将开发人员从追踪内存的使用和了解何时释放内存的辛劳中解脱出来。这一特性叫做垃圾垃圾清理。虽然垃圾清理给予你很多急需的自由,但是它并不能完全取代你对应用程序所消耗的资源的管理。
例如,垃圾清理器对存里的真实对象一无所知,而且有时并不能够完全感知如何正确地释放对象所占用的资源。要正确地进行垃圾清理工作,你就必须编写代码来清除和释放你所使用的任何资源。这一过程要使用Close、Dispose和Finalize这样的方法来完成。现在让我们来更加仔细地看看如何对ADO.NET的对象使用这些方法。
在本文所用的示例代码里,我用到了SQL服务器和VB.NET。因此,我使用了System.Data.SqlClient命名空间里专门用于SQL服务器的对象,但是相同的概念还可以应用于其它ADO.NET数据提供器。在访问SQL服务器数据的时候,你要用到的最常见类有:
Listing A里的VB.NET代码建立了一个与SQL服务器里Northwind数据库的连接。它通过客户(Customers)表格来访问姓名的列表。
在Listing A里,如果查询返回了数据,那就说明我已经建立了数据库的连接并能够从客户表格里读取数据。在读取完数据之后,就不再需要数据库的连接和其他对象了,这时这些对象所占用的资源就应被释放,而且最重要的是:应该断开数据库的连接。数据库连接的数量常常要根据数据库平台的安装情况来严格限制,所以保证数据库的连接被及时关闭就是极其重要的。