摘要:学习如何使用 sql server 2000 和 visual studio .net 2003 为 dotnetkb asp.net 解决方案创建数据存储层。此外,还讨论了有关 sql server、iis 和 asp.net 的安全性问题。
简介
在《asp.net应用程序规划与设计》中,我们讨论了名为 dotnetkb 的 asp.net 解决方案的基础规划和设计知识。本部分将详细讨论如何使用 microsoft? sql server? 2000 和 microsoft visual studio? .net 2003 创建数据存储层。其中包括创建数据库(添加表、索引、约束条件和关系)以及编写用于存取数据的存储过程。同时,我们还将讨论与 sql server、internet 信息服务器 (iis) 和 asp.net 有关的安全性问题。到本部分结束时,我们将获得一个适用于 dotnetkb 解决方案的功能完备且安全的数据存储系统。
使用 visual studio .net 2003 创建数据库图
visual studio .net 2003 的众多优势之一是,用户可将其用作主要的 sql server 编辑器来完成大多数任务。获得目标数据库服务器的适当权限后,您就可以轻松地使用 visual studio .net 2003 创建各种数据库、表、索引、约束条件、关系、视图、存储过程和功能了。visual studio .net 提供了一个可供您完成上述操作的默认数据库项目,还包括了用于创建表、触发器、存储过程等的大量模板,非常便于使用。最后,因为使用 visual studio .net 作为 sql server 的编辑环境,所以还可以使用它将所有 sql server 脚本存储到 microsoft visual sourcesafe? 中。这对于共享项目和其他需要长期维护的情况而言非常方便。
引用用户方案
针对本系列文章中的项目 dotnetkb,我创建了 30 多个用户方案,用于标识支持本系列文章第 1 部分所概括的应用程序所需的任务。我们将使用这些用户方案来标识表中存储的数据以及为管理这些数据而在运行时执行的存储过程。下面是部分用户方案列表。完整的列表可以从相关支持站点 user scenarios for dotnetkb project(英文)上找到。
1、查看按关键字搜索的问题列表(按日期倒序排列)
2、查看按日期排序的问题列表(按日期倒序排列)
3、查看按主题排序的问题列表(按主题的字母顺序/问题的日期倒序排列)
4、查看某个特定主题的问题列表(按日期倒序排列)
5、查看无任何解答的问题列表(按日期倒序排列)
6、查看问题计数
7、查看无解答的问题计数
8、查看某个特定主题的问题计数
9、查看由某位专家解答的问题计数
10、查看某个问题及其解答列表(按解答日期倒序排列)
11、添加新问题
12、编辑现有问题
13、删除现有问题及其相关解答
如您所见,列表中仅仅涉及到问题记录的任务就有许多。而且您还需要处理解答、主题和专家记录。而在实际工作中,这才刚刚开始。首先,您必须标识需要为每条记录存储的数据元素(问题、解答、主题和专家),还需要将结果以表格的形式组织到 sql server 中的数据库中。
创建数据库项目
首先要打开 visual studio .net 2003 并创建一个新的数据库项目。visual studio .net 数据库项目的类型目前还不太确定,因为开始新项目时它隐藏在选项列表中。但开始使用后,我想您会发现数据库项目类型有许多优点,所以非常值得花费精力去掌握它们。
要使用 visual studio .net 创建一个新的数据库项目,需要完成以下任务:
启动 visual studio .net,如果新建项目对话框没有自动出现,请从主菜单中选择 file(文件)-> new(新建)-> project(项目)。
当显示 new project(新建项目)对话框时,展开左侧树视图列表中的 other projects(其他项目)文件夹,然后单击 database projects(数据库项目)文件夹。此时右侧将显示 database project(数据库项目)模板。 现在,在 name:(名称:)输入框中键入项目名称。在我的例子中,键入的是 dotnetkb_database,不过您可以根据需要键入任何内容。
在 database references(数据库引用)项上单击鼠标右键,然后从上下文相关菜单中选择 new database reference...(新建数据库引用...),打开 data link properties(数据链接属性)对话框。 输入您在其中添加 dotnetkb 数据库的数据库服务器的名称,然后输入您的登录凭据并从下拉菜单中选择 dotnetkb。