ASP.NET构建数据层适用于:
Microsoft ASP.NET 2.0
Microsoft Visual Web Developer 2005 Express Edition
欢迎您阅读ASP.NET构建数据层,该文章将为您从头到尾展示创建一个应用程序的完整过程。要构建的初学者工具包称为 Media Share Library Starter Kit。Media Share Library Starter Kit 使您能轻松创建允许注册用户展示媒体项目(例如电影 DVD、音乐 CD、书籍等等)集合的应用程序,以便供其他注册用户借用。用户能够一并浏览使用该应用程序的组所拥有的项目库,并向项目的注册所有者请求借用某些特定项目。Media Share Library Starter Kit 的理念是,您能够使用其提供的框架快速组织为更多人所共享的库集合。
无论您是否使用初学者工具包,它本身就表明了在最新版本的 ASP.NET 2.0 中 Microsoft ASP.NET 所具备的更激动人心的附加功能,这正是它的微妙所在。初学者工具包利用了大量的母版页、新的代码隐藏模型、新的服务器控件等等。本文重点介绍如何使用初学者工具包的一些激动人心的、新的数据功能,例如使用新的 Microsoft SQL Server Express Edition 文件以及新数据源控件来执行插入、更新和删除数据的操作,这些功能将在 ASP.NET 2.0 中提供。
让我们开始自己动手构建初学者工具包的数据层吧,首先来学习使用新的 SQL Server Express Edition 构建自己的数据存储。
使用SQL Server Express
Microsoft 的 SQL Server 2005 Express Edition 是一个新的数据库产品,它基于 Microsoft SQL Server 2005 成熟版本所使用的技术。SQL Server Express Edition 是 SQL Server 2005 的一个剪裁版本,只要使用它,您就不必使用其他数据库文件(例如 Microsoft Access .mdb 文件)来构建 ASP.NET 应用程序的数据层了。
过去,许多 Web 开发人员和业余爱好者发现,使用 Access 文件作为应用程序的数据存储非常简单,这些文件不但易于安装和实现,而且易于和应用程序的其余文件一起从一个位置复制到另一个位置。鉴于这个原因,Microsoft 通过新的 .mdf 文件扩展名提供了 SQL Server Express Edition 文件,您能够以处理上述 Access 文件的方式对它进行处理。这些 .mdf 文件可通过与 Visual Studio 集成的卓越功能轻松创建,在 ASP.NET 应用程序内使用起来很简单,通过 x-copy 将文件从一个位置复制到另一个位置也很容易,就好像只是 ASP.NET 应用程序中的另一些文件一样,通过它进行部署可以说是易如反掌。
不仅如此,使用方面的便利还有很多。新的 SQL Server Express 产品支持诸如 XML、VARCHAR(MAX) 等新的数据类型,甚至支持用户定义的数据类型。
首先,我们来了解用于存储用户和角色信息的数据库文件。
构建ASPNETDB.MDF 文件
本文介绍的初学者工具包是处理注册用户的,因此您最想知道的可能就是初学者工具包存储用户和角色信息的位置。在初次构建和运行应用程序时,您会注意到,Visual Studio 2005 动态创建了存储这些信息的数据库文件。
按 F5 键启动并构建应用程序之后,ASP.NET 将动态创建所需的 ASPNETDB.MDF 数据库文件,该文件用于为应用程序存储用户的登录信息和角色信息。
在 App_Data 文件夹中,除了 ASPNETDB.MDF 文件,还有 Library.mdf 文件,我们将在后面简要介绍此文件。如果文件夹中没有此文件,需要按下 Visual Studio 解决方案资源管理器工具栏中的“刷新”按钮。使用 Visual Studio 的优点是,可直接通过它对此文件以及其他 SQL Server Express 数据库文件执行您所需的任何操作。在解决方案资源管理器中双击 ASPNETDB.MDF 文件,在 Visual Studio Server Explorer 中打开该数据库文件。
您不仅可以使用数据库中包含的表,还可以使用数据库图表、视图、存储过程、函数、同义词、类型和程序集。该 ASPNETDB.MDF 文件屏幕快照显示使用用户登录信息和角色时所需的所有表,以及与用户关联的配置文件信息。
我们将不修改该 ASPNETDB.MDF 文件,因为它是要运行的 ASP.NET 引擎需要的一个文件。可以在该数据库文件中只添加所需的新表,并仅从该数据库文件处运行整个应用程序,但是,最佳做法是将您自定义的数据库操作从默认的 ASPNETDB.MDF 文件所执行的操作中分离出来。那么,接下来我们将介绍如何创建 Library.mdf 数据库文件。媒体共享库 (Media Share Library) 将使用该文件来存储有关应用程序所保存项目的所有信息,其中包括每个保存的项目是否处于借用状态。
构建 Library.mdf 文件
构建下一层媒体共享库 (Media Share Library) 数据层的方法是构建一个简单的数据库文件,用它来保存应用程序需要存储的所有底层数据。该数据库中实际存储的是什么?嗯,事实上用户需要存储自己的媒体库(DVD、CD、书籍等)以及有关项目借用状态的信息,如果您看过第一篇介绍初学者工具包的 ASP.NET Jumpstart 文章,就不难理解这个问题了。
要创建所需的数据库文件,在 Visual Studio 解决方案资源管理器中右键单击 App_Data 文件夹,在提供的菜单中选择 Add New Item。此操作将启动“添加新项目”对话框。选择该对话框中的 SQL 数据库作为创建应用程序所使用的文件类型。请确保将该文件命名为 Library.mdf。
一旦创建该文件,App_Data 文件夹中即出现新的 Library.mdf 文件,双击该文件可在 Visual Studio Server Explorer 中打开它,这一点与 ASPNETDB.MDF 文件一样。
如果尝试展开服务器资源管理器中的 Tables 文件夹,那么除了文件夹左侧的加号图标不见以外没有其他反应。这是由于当前 Library.mdf 文件中没有任何表。要创建第一张表,只需右键单击服务器资源管理器中 Library.mdf 下的 Tables 文件夹,并在提供的菜单中选择 Add New Table 即可。您需要为本文的应用程序创建两张表。第一张表命名为 MediaTypes,它将处理媒体共享库 (Media Share Library) 应用程序所使用的自定义类别。请记住,库中存储的每个项目都需要以某种方式进行分类(例如 DVD、CD、书籍等),而且这些类别是根据 MediaTypes 表的内容动态生成的。MediaTypes 表是要创建的一张简单的表。
创建表时,只要提供有关列的一些简要信息,即可创建这些数据库的列。
在创建数据库中的信息表时,通常情况下比较合适的做法是用唯一的关键字标识表中的每一行。因此,MediaTypes 表将包含一个标题为 MediaTypeId 的列,因为要为每行定义一个绝对唯一的 ID 值,所以该列类型为 int,而且不允许 Null 值。但是这不适用于列定义。下一步,右键单击某行开头的灰色框,选择所提供菜单中的 Set Primary Key。然后,该行开头会出现一个黄色的关键字。除此之外,请确保创建的每个 ID 都用作标识符,并且每个 ID 都是唯一的。高亮显示某列,您将能够看到文档窗口中定义的列属性。在此属性窗格中设置标识说明 (Identity Specification),以便表明 ID 唯一且用于标识。
设置 MediaTypeId 列后,下一步是创建该表中的其他两列:MediaTypeName (nvarchar(50)) 和 MediaComments (nvarchar(MAX))。浏览该表时,不费吹灰之力就能辨别每列在本应用程序中的用途。如前所述,MediaTypeId 用作该表每行的标识符。MediaType 是应用程序实际呈现给最终用户的类别名,而且实际上应用程序根本不使用 MediaComments,它只是允许开发人员或数据库管理员按需为每个类别提供注释。
一旦表就绪,请按 CTRL+S 来保存表定义。然后会出现一个对话框,提示您为新表命名。请确保将该表命名为 MediaTypes。
创建 MediaTypes 表后,再创建下一张表,该表用于存储应用程序中保存的所有库项目。该表也指示这些项目是否为某人所借用,借用人是谁以及何时归还给所有者。
从该表定义中您会发现,某些数据项来源于应用程序所使用的其他表或数据库。