创建ASP.NET数据存储层(2)

asp.net|创建|数据

使用 Visual Studio .NET 定义数据库表

  在 Visual Studio .NET 中定义数据库表的最简单的方法是创建一个数据库图。这样,您可以在一个类似“所见即所得”的编辑器中定义所有细节。您只需展开 Server Explorer(服务器资源管理器)中相应的树,在 Database Diagrams(数据库图)项上单击鼠标右键,然后从上下文相关菜单中选择 New Database Diagram...(新建数据库图...),即可启动一个新的空白图。第一次启动某个图时,系统将要求您从数据库中选择一个表。因为您尚未创建任何表,所以可以忽略该对话框。现在,可以开始定义您的表了。

  在生成的《ASP.NET应用程序规划与设计》用户方案文档包含定义表所需的信息。学习定义如何在系统中添加新记录的方案,通常是了解需要存储哪些数据的最佳途径。有时,您需要查看诸如记录更新甚至是报告之类的其他方案,以确保没有遗漏其他字段。在本示例中,“添加记录”方案就是一个很好的参考方案。

  例如,以下是用于添加问题的方案:

  添加新问题

  向系统中添加一条新问题记录,其中包括标题、日期/时间、指明该问题所属类别的主题 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 中的存储过程。

时间: 2024-11-03 20:08:30

创建ASP.NET数据存储层(2)的相关文章

创建ASP.NET数据存储层

asp.net|创建|数据 摘要:学习如何使用 SQL Server 2000 和 Visual Studio .NET 2003 为 DotNetKB ASP.NET 解决方案创建数据存储层.此外,还讨论了有关 SQL Server.IIS 和 ASP.NET 的安全性问题. 简介 在<ASP.NET应用程序规划与设计>中,我们讨论了名为 DotNetKB 的 ASP.NET 解决方案的基础规划和设计知识.本部分将详细讨论如何使用 Microsoft? SQL Server? 2000 和

创建ASP.NET数据存储层(1)

asp.net|创建|数据 摘要:学习如何使用 SQL Server 2000 和 Visual Studio .NET 2003 为 DotNetKB ASP.NET 解决方案创建数据存储层.此外,还讨论了有关 SQL Server.IIS 和 ASP.NET 的安全性问题. 简介 在<ASP.NET应用程序规划与设计>中,我们讨论了名为 DotNetKB 的 ASP.NET 解决方案的基础规划和设计知识.本部分将详细讨论如何使用 Microsoft? SQL Server? 2000 和

创建ASP.NET数据存储层(6)

asp.net|创建|数据 创建 ASP.NET 测试页 创建测试页始终是访问 SQL Server 数据层并验证输入和输出参数是否得到正确处理的好办法.实际上,这是确保以后的生产解决方案中的 ASP.NET 页和组件能够按照预期方式工作的唯一办法.这对于从解决方案中的某个层调用其他层时的验证信任边界和安全性问题尤其正确. 另外,在进行测试时,请勿拘泥于创建生产类接口.您只需测试目标方法.实际上,故意创建一些您不愿以之为最终生产解决方案的"丑陋"测试页是一个好的策略!本文中,我创建了一

创建ASP.NET数据存储层(3)

asp.net|创建|数据 使用 Visual Studio .NET 2003 编写存储过程 数据表定义了如何在数据库中存储数据,但没有说明如何存取数据.我们还需要了解读写记录以便从表中再次调用选定行和列的详细信息.开发人员通常会在其代码中编写一些特殊的查询语句,用于读写数据.这不仅会导致效率低下,还会带来安全性问题.在本应用中,所有数据存取工作都将通过 SQL Server 存储过程(stored procedures,有时称作"stored procs"或"sprocs

创建ASP.NET数据存储层(4)

asp.net|创建|数据 使用 Visual Studio .NET 添加存储过程 下面详细介绍如何在 Visual Studio .NET 2003 中将存储过程添加到现有 SQL Server 数据库中.您需要使用服务器资源管理器打开一个新的存储过程模板,进行编辑,然后再将其保存到数据库中.下面是分步实现这一过程的示例: 打开 Visual Studio .NET,然后打开一个现有的数据库项目(如本文前面所启动的项目)或启动一个新项目. 在 Server Explorer(服务器资源管理器

创建ASP.NET数据存储层(5)

asp.net|创建|数据 IIS.ASP.NET 和 SQL Server 的安全性问题 SQL Server.Internet 信息服务器和 ASP.NET 引擎都提供了坚实可靠的安全模型,它们可以很好地在一起协同工作.为了保证用户数据和应用程序的安全,Microsoft 还为每项服务的默认设置设置了相当低的值.大多数开发人员面临的挑战是如何使用 SQL Server.IIS 和 ASP.NET 在应用程序和数据之间设置适当的信任级别,而不会留下可被别人轻易攻入的安全漏洞.由于涉及三类服务(

创建ASP.NET数据存储层(7)

asp.net|创建|数据 生成源代码和安装脚本 Visual Studio .NET 的另一个重要功能是它能够为现有数据库生成一个完整的生成脚本.实际上,您可以使用 Visual Studio .NET 为整个数据库层生成源代码(包括生成表和索引.授权.存储过程等),还可以生成一个可用于在现有 SQL Server 上安装这些数据库对象的命令行脚本. 生成安装脚本非常容易,它包括两个步骤:首先,需要生成 T-SQL 脚本来创建数据库对象(表.索引.过程等).然后,生成一个针对目标 SQL Se

ASP.NET MVC5网站开发之实现数据存储层功能(三)_实用技巧

数据存储层在项目Ninesky.DataLibrary中实现,整个项目只有一个类Repository. Repository中实现增删改查询等方法供业务逻辑层调用,主要功能如下图: 具体步骤 一.添加实体框架的引用 1.打开解决方案,选择项目Ninesky.DataLibrary,在引用上右键,选择管理NuGet程序包. 在NuGet包管理器中的浏览标签中点击EntityFramework,点击右侧栏的安装按钮. 在搜索框输入EntityFramework.zh-Hans,安装假体中文资源包.

ASP.NET数据格中计算数值总和

asp.net|数据 以表格形式显示数据可以带来很多好处.在本文中,我将讲解如何使用DataGrid计算总计,这在处理数值时会经常用到. 在讨论DataGrid控制时,常常可以听到别人对此方法的嘲笑.他们常常抛弃它转而使用第三方的工具.事实上,DataGrid作为. NET Framework的核心部分,已成为我开发工具箱中极具价值的工具. 什么是总计?在应用程序中使用DataGrid控制可以允许你以对绝大部分用户来说熟悉的格式来发布数据(栅格格式常常被用于如微软Excel等电子数据表格应用程序