技术开发 频道

使用VS2005 DataSet设计器实现数据访问层



【IT168 专稿】在早期的数据库应用程序中,大多都是客户端直接访问数据库。而随着程序越来越复杂,系统设计人员开始意识到需要在客户端和数据库之间架起一座桥梁,这就是所谓的数据访问层,这样一来,不但可以使数据库更安全,而且增加了客户端对数据库的透明性。这种结构也就是我们常说的三层结构。

    一个出色的数据访问层应该可以适用大多数商业应用程序,无论这个程序是基于C/S、Web还是直接在客户端使用。数据访问层的主要作用是在客户端获取或请求数据库服务之前进行一系列的处理,如对请求和获得的数据进行二次加工,或封装一些常用的代码。当然,我们也可以选择不使用数据访问层,通常最容易想的方法就是设计一些通用的类,并将常用的功能封装进去,或使用代码自动生成器来生成代码。这样做虽然可以在一定程序上缓解了程序的复杂度,但我们仍然要编写大量的代码,至少操作数据库的SQL语句需要手工编写。

如果我们正在使用Visual Studio2005,那么实现所谓的数据访问层就容易的多了。在VS2005中DataSet设计器已经得到非常大的改进,通过DataSet设计器我们几乎可以不用写数据访问语句就可以完全很复杂的数据库操作。在本文中,将引领读者了解VS2005 Dataset的新特性,并使读者掌握如何使用这些新特性。同时还就使用Dataset设计器所带来的正面和负面效应进行了详细的阐述。

一、DataSet简介
在一般情况下,Dataset是一些通过Visual Studio设计器自动产生的类。这些类从ADO.NET DataSet、DataTable和DataRow继承,并提供一些用于访问数据的方法,并在DataSet中包含一个特殊的schema。我们可以在Visual Studio中通过拖放操作来生成Dataset类,并通过设计相应的属性来满足我们的需要。如果从底层来看,每生成一个Dataset,就相当于生成一个基于XML的XSD文件,在这个文件中包含了DataSet中的Schema。这个XSD文件还包含了一些和产生的数据源相关的一些注释。然后Visual Studio使用XSD文件自动产生的代码文件,这些代码文件同时包含了Dataset的定义。
 
当我们在应用程序中使用数据库时,数据一般被表示成不同的商业实体,如Customers、Products、Employees等。为了和这些数据一起工作,需要将它们以商业实体的形式封装。如可以为每个实体写一个定制的类,同时这些类应该为需要处理的数据提供相应的接口。当然,为了方便处理多个实体对象,我们还需要为每一个实体建立一个集合类。
 
Dataset将为我们描绘一个非常容易处理的数据世界。在这个世界中我们可以非常轻松地对数据进行增删改操作。从本质上讲,我们创建了一个Dataset,就相当于创建了一个自定义的类。这和我们手工写的类一样,所不同的是,这是使用可视化的设计器来完成的。同时这个Dataset会和数据库的schema保持同步。而Visual Studio的代码产生器将为我们完成所有的底层操作。另外,由于这些Dataset从ADO.NET的相应类型继承,因此,它们可以继承丰富的数据操作功能。这些功能还可以和Windows Forms或ASP.NET的数据绑定结合使用,如果使用了数据绑定功能,那么我们的工作量将会大幅度缩减。
 
最后,也是最重要的,当我们在Visual Studio 2005中创建一个Dataset,同时也为每一个表创建一个适配器,并将这些适配器加到Dataset中。表适配器是真正访问数据库的组件,我们可以直接使用它对数据进行操作。它封装了数据库连接,数据适配器和Command对象集,我们可以用这些Command对象集来执行SQL语句。
0
相关文章