21.10 小结
数据访问是一个很大的主题,特别是在.NET中,有非常丰富的内容要论及。本章概述了ADO.NET命名空间中的主要类,解释了在处理数据源中的数据时如何使用这些类。
首先通过SqlConnection (SQL Server专用)和OleDbConnection (任何OLE DB数据源)的使用,讨论了Connection对象的用法。这两个类的编程模型非常类似,一般其中一个类可以替代另一个类,代码仍能继续运行。在.NET 1.1中,还可以使用Oracle提供程序和ODBC提供程序。
接着阐述了如何正确地进行连接,这样稀缺的资源就可以尽可能早地关闭。所有的连接类都执行IDisposable接口,在对象放在using子句中时调用。如果本章只有一件值得注意的事,那就是尽早关闭数据库连接的重要性。
然后通过执行没有返回数据的示例、利用输入和输出参数调用存储过程,讨论了数据库命令。本章描述了各种执行方法,包括只能在SQL Server提供程序上使用的ExecuteXmlReader方法。这大大简化了基于XML的数据的选择和处理。
这里详细介绍了System.Data命名空间中的常用类,包括DataSet、DataTable、DataColumn、DataRow,以及关系和约束。DataSet类是数据的绝佳容器,各种方法使之成为跨层数据流的理想容器。DataSet中的数据可以用XML来表示,以利于传输,另外,可用的方法能在层次之间传输最少量的数据。把许多数据表放在一个DataSet中可以大大提高其使用性。下一章将扩展论述能自动维护主/从数据行之间关系的功能。
除了把模式存储在DataSet中外,.NET还包括数据适配器,它与各种Command对象组合使用,可以把数据选择出来,放在DataSet中,以后还可以更新数据库中的数据。数据适配器的一个优点是可以为4个操作(SELECT、INSERT、UPDATE 和 DELETE)中的每一个定义不同的命令。系统可以根据数据库模式信息和一个SELECT语句创建一组默认的命令,但为了得到最佳性能,可以使用一组存储过程,并定义一组合适的DataAdapter命令,仅把需要的信息传送给这些存储过程。
我们还介绍了XSD工具(xsd.exe),使用一个示例来说明如何在.NET中基于XML模式使用类。产生的类可以用于应用程序,它们的自动生成减少了大量的键入工作。
最后论述了用于数据库开发的一些好的方式和命名约定。
有了这些知识,就可以学习第22章,探讨Visual Studio的使用和.NET的Windows窗体数据控件了。





