如何在.NET应用程序中使用数据库层

来源:互联网 发布:淘宝限时促销要钱 编辑:程序博客网 时间:2024/05/19 04:54

大多数应用软件的开发都是在一个多层或者多级的环境中完成的,除非你是在用过时的代码或系统在工作。这可能包括了与业务规则和表示层一起的数据库层。每一个n层环境的关键部分就是数据库层。在这篇专栏文章里,我们将分析怎样在.NET 的应用程序中使用数据库层。

代码分离

无论你是在构建一个网站、Windows操作系统、网站服务,还是其他任何一种应用程序,你肯定要将数据库的CRUD(创建、读取、更新和删除)操作合并。许多开发者经常从像网页这样的应用资源里直接调用数据库,但是这样就会导致噩梦般的维护或代码变换——尤其是当有必要改变数据库访问的时候。

当前的一种产业趋势是将数据访问代码同其余的代码相分离。用这种方式,你可以通过数据访问代码进行所需的数据库调用。这样就使得你能够在不涉及应用程序其余部分的情况下,进行数据库访问或者改变代码。除此之外,你还可以完全将数据访问代码移至它自己所属的类,在应用程序中重复使用它。

和其他为应用程序开发所做的努力一样,有不止一种的方法来处理它。你可以采取某种策略,使数据访问代码数据库变得独立,这样就会使得在不影响其他应用程序层的情况下,打开后端数据库变得很容易。另外,你的环境中还可以有一个标准化的后端数据库,因此就可能不需要那么高的透明级别了。

而且,你可以选择让数据访问代码通用化,以便让其适用于多个应用程序,或者为某个特定程序量身定制数据访问代码。和大多数话题一样,应用程序开发者会争论某种方法要比另一种方法好,但是到最后,它还是取决于你的环境、项目和时间限制。让我们来探讨一下在.NET 应用程序中数据访问层的运用。

构建数据访问层

基本上来说,数据访问层只是我们写入的与数据源相互作用的代码;它可以很简单,也可以很复杂,这根据你的需要来决定。举个例子,我们将创建一个数据访问类来处理与曾经风靡一时的SQL Server Northwind数据库之间的相互操作。我们的应用程序需要执行以下的数据库操作:

  • 向用户表添加新的用户
  • 从用户表删除用户
  • 查看用户表中包括的用户信息
  • 在Northwind数据库中运行存储过程。

我们从创建数据访问类开始。前面列表中的每个项目所对应的方法都包括在内。该类包含了以下方法来处理这些函数:

  • GetDataSet方法接受一个单独的,包含了要运行的存储程序名称的字符串参数。程序执行后,结果储存在一个DataSet对象中,该对象又通过此方法被返回。
  • GetCustomers方法是GetDataSet方法的一个变体,但是它是为了和Northwind的用户表相互作用专门定制的,然后在一个DataSet对象中返回所有的列。
  • AddCustomer方法接受需要的数据并向数据库添加记录。
  • DeleteCustomer方法把记录标识作为整数接受,它被用来从数据库中删除适当的记录。
  • RunProcedure方法接受一个字符串值,其中包括了在后端数据库运行的存储程序的名称。
  • GetDataReader方法接受一个字符串变量中的存储程序名称。这个程序在后端数据库中运行,其结果由该方法作为一个SqlDataReader对象被返回。
  • WriteToEventLog方法被所有方法用来记录Windows事件日志中的所有异常。

数据库连接字符串被储存在Web.config文件中(这在Web的应用程序被使用),但是app.config文件也可以被使用。类的ConnectionString属性从配置文件中检索得到值。而且,所有的方法都是静态的,所以它们可以不需要经过类的实例例示就可以使用。查看列表A

列表A

当这个类准备就绪之后,你可以很容易地在应用程序中使用它。例如,一个DataGrid可以利用DataAccess和数据库交互作用。它可以利用由GetCustomers返回的DataSet对象。同样地,其他的方法也可以用来对后端数据进行操作。

原创粉丝点击