目录:
引用用户方案
创建数据库(数据库培训 数据库认证 )项目
使用 Visual Studio .NET(.NET培训 ) 定义数据库表
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,不过您可以根据需要键入任何内容。
然后单击 OK(确定)按钮,创建项目并在 Visual Studio .NET 中打开它。
屏幕上将出现一个对话框,要求您选择要与该项目相关联的数据库。此时,先单击 Cancel(取消)。下一步将创建一个新数据库并将其添加到您的项目中。
图 1 所示为您创建项目时,该项目在 Visual Studio .NET 中的外观。

图 1:创建一个新的数据库项目
创建要使用的新数据库之后,可以在该数据库与您的项目之间建立一个连接,以便在 Visual Studio .NET 2003 中对其进行操作。为此,需要完成以下任务:
在 Solution Explorer(解决方案资源管理器)窗口中,展开您的 dotNETKB_Database 项目,以显示 Database References(数据库引用)项。
在 Database References(数据库引用)项上单击鼠标右键,然后从上下文相关菜单中选择 New Database Reference...(新建数据库引用...),打开 Data Link Properties(数据链接属性)对话框。
输入您在其中添加 DotNetKB 数据库的数据库服务器的名称,然后输入您的登录凭据并从下拉菜单中选择 DotNetKB。
单击 OK(确定)按钮,将引用添加到您的项目中。
图 2 所示为完成上述操作时对话框的外观。

图 2:Data Link Properties(数据链接属性)对话框
至此,数据库创建完毕并被添加为您项目的引用。下一步,定义存储 DotNetKB 解决方案数据所需的表。
使用 Visual Studio .NET 定义数据库表
在 Visual Studio .NET 中定义数据库表的最简单的方法是创建一个数据库图。这样,您可以在一个类似“所见即所得”的编辑器中定义所有细节。您只需展开 Server Explorer(服务器资源管理器)中相应的树,在 Database Diagrams(数据库图)项上单击鼠标右键,然后从上下文相关菜单中选择 New Database Diagram...(新建数据库图...),即可启动一个新的空白图。第一次启动某个图时,系统将要求您从数据库中选择一个表。因为您尚未创建任何表,所以可以忽略该对话框。现在,可以开始定义您的表了。
学习定义如何在系统中添加新记录的方案,通常是了解需要存储哪些数据的最佳途径。有时,您需要查看诸如记录更新甚至是报告之类的其他方案,以确保没有遗漏其他字段。在本示例中,“添加记录”方案就是一个很好的参考方案。
例如,以下是用于添加问题的方案:
添加新问题
向系统中添加一条新问题记录,其中包括标题、日期/时间、指明该问题所属类别的主题 ID 以及问题正文。有时还需要提供问题提出者姓名及其电子邮件地址。添加新问题之后,将向调用函数返回一个唯一的整数问题 ID。
重要名词以粗体表示。阅读方案说明时,这些名词或表名(例如,“问题记录”就是一个很好的例子)往往能够表明需要存储哪些数据。使用上述信息,您可以在数据库图中添加一个新表并定义所需的列。下面的示例详细介绍了如何在数据库图中添加表。
在图“surface”上单击鼠标右键并从上下文相关菜单中选择 New Table...(新建表...)。输入 Questions(问题)作为表名,然后单击 OK(确定)将其添加到图中。
在 Questions(问题)表对话框中,键入上文所述方案中提供的字段信息。例如,Column Name(列名)= ID、Data Type(数据类型)= int、Length(长度)= 4,并取消选择 Allow Nulls(允许为空)复选框。对该表的其余部分重复上述操作(参见图 3)。

图 3:Questions(问题)表
您将看到,第一列 (ID) 旁边有一个小的金色键。它表示该字段是该表的主键字段。要设置主键字段,可以在列表中的列名上单击鼠标右键,然后从上下文相关菜单中选择 Primary Key(主键)。另外,还应将此 ID 字段设置为以增量方式自动增加的标识列。这样,SQL Server 就可以为添加到表中的每条记录自动生成一个唯一的整数值。要进行此设置,请在该列上单击鼠标右键,从上下文相关菜单中选择 Properties(属性),然后在 Property Pages(属性页)对话框中选择 Columns(列)选项卡。其他的操作就很容易了(参见图 4)。

图 4:Property Pages(属性页)对话框中的 Columns(列)选项卡
使用“添加主题记录”和“添加解答记录”方案中的信息,可以创建其他两个表。请务必为每个表创建 ID 列,并将这些列标记为标识列和主键。下面的图 5 显示了三个已完成的表。

图 5:三个已完成的表
您会发现,这些表都通过连接线与数据库图连接起来。这些连接线表明表之间存在外键关系。例如,Questions(问题)表中的 TopicID 列与 Topics(主题)表中的 ID 列相关联。通过将这种关系存储到数据库中,您可以制定用以防止在数据库中保存非法数据的规则。本示例中的关系规则是,Questions.TopicID 列所允许的有效值只能是 Topics.ID 列中已存在的某条记录的值。
您可以通过将 Questions(问题)表中的 TopicID 列拖放到 Topics(主题)表中的 ID 列上,来定义这些关系。此时将出现一个对话框,显示规则定义的详细信息并要求您按下 OK(确定)按钮进行确认(参见图 6)。

图 6:Create Relationship(创建关系)对话框
您可能会发现,Responses.QuestionID 和 Questions.ID 之间也定义了一个关系。
注意:您可能已经注意到,我们还没有为专家定义任何表。我决定将有关专家的信息存储在一个 XML 文件中,而不是存储在数据库中。这样做的主要原因是我们可以借此讨论一下如何读写 XML 数据,以便在同一个应用中融合 XML 数据和关系数据。我们将在下一部分中讨论有关专家数据的问题。
至此,数据库和表都已定义完毕。以上介绍了解决方案的实际数据存储过程。但是,我们还需要了解如何在表中读写信息。为此,我们将定义 SQL Server 中的存储过程。
下一篇:《使用VS.NET2003创建数据库图》
(责任编辑:战莹) |