处理表格

作者:Saad Ladki

先决条件

本演练假定使用以下环境:

  1. Web 服务器上已安装 IIS 数据库管理器(<数据库管理器下载链接>)。
  2. 数据库服务器(可与 Web 服务器驻留在同一物理计算机上)

做好准备

我们在本演练中使用一种场景:假设我们要为虚构站点 www.fabrikam.com 上的资源创建访问控制列表。 为此,我们将生成 2 个表:

第一个表“FabrikamUsers”将包含每个用户的用户 ID、用户名和电子邮件地址。
第二个表“AccessControls”将包含对用户 ID、资源 URL 的引用,以及是否允许用户访问资源。 Screenshot of Fabrikam Users table and Access Controls table. The Fabrikam Users table contains the text user I D, username, and email address. The AccessControls table has the text A C I D, user I D, Resource U R L, and Is User Allowed.

创建新表

创建新表:

  1. 打开“Internet Information Services (IIS)管理器” 。

  2. 转到数据库管理器并展开数据库连接节点(有关创建数据库连接的详细信息,请参阅 IIS 数据库管理器基础知识)。

  3. 在“表”节点上,右键单击并选择“新建表”。 Screenshot of Tables node. Tables option is selected and New Table is highlighted.

    编辑器区域中将显示一个新选项卡。 花点时间熟悉工具栏上的按钮:

    1. 新建列:可用于向表定义添加新列。
    2. 删除列:可用于删除表定义的现有列。
    3. 索引/键:可用于定义表的索引或主键。
    4. 关系:可用于定义表的外键关系。
    5. 保存:可用于保存对表所做的更改。

    Screenshot of editor toolbar. The buttons for New Column, Delete Column, Indexes and Keys, Relationships, and Save are highlighted.

  4. 单击工具栏中的“新建列”。 将创建新列,并显示“列属性”窗格。

  5. 在“列属性”中,执行以下操作:

    1. 键入“UserId”作为列名称。
    2. 将“允许为 Null”设置为“False”。
    3. 将“数据类型”设置为“int”。
    4. 将“默认值”留空。
    5. 将“IsIdentity”设置为“True”。

    Screenshot of Column Properties pane. Is Identity option is highlighted and the text to the right of it is set to True.

  6. 现在,单击“索引/键”图标将此字段设为主键。 此时会打开一个新对话框。 Screenshot of editor toolbar. The Indexes and Keys button is highlighted.

  7. 在对话框中,单击“添加”按钮,然后填写主键信息,如下所示:

    1. 将“列”设置为“UserId”。
    2. 将“是否唯一”设置为“True”。
    3. 将“类型”设置为“主键”。
    4. 将“名称”设置为“PK_UserId”。

    Screenshot of the Indexes and Keys pane. Under the heading Identity, the text Name is selected.

  8. 单击“关闭”以关闭对话框。

  9. 单击工具栏中的“新建列”,为用户名添加另一列。

  10. 在“列属性”中,执行以下操作:

    1. 键入“Username”作为列名称。
    2. 将“允许为 Null”设置为“False”。
    3. 将“数据类型”设置为“varchar”。
    4. 将“长度”设置为 50。
  11. 最后,单击工具栏中的“新建列”,为电子邮件地址添加另一列。

  12. 在“列属性”中,执行以下操作:

    1. 键入“Email”作为列名称。
    2. 将“允许为 Null”设置为“True”。
    3. 将“数据类型”设置为“varchar”。
    4. 将“长度”设置为 100。
  13. 单击工具栏上的“保存”,将打开保存对话框。 Screenshot of Toolbar. Save button is highlighted.

  14. 在“表名称”中,键入“FabrikamUsers”。 还可以指定架构或将“架构名称”字段留空,以便为数据库用户使用默认架构。 Screenshot of save dialog. In the Table Name box the text Fabrikam Users is written. Use default schema is selected.

现在,让我们定义“AccessControls”表。 我们将遵循与上述类似的步骤:

  1. 在“表”节点上,右键单击并选择“新建表”。 编辑器区域中将显示一个新选项卡。

  2. 单击工具栏中的“新建列”。 将创建新列,并显示“列属性”窗格。

  3. 在“列属性”中,执行以下操作:

    1. 键入“ACId”作为列名称。
    2. 将“允许为 Null”设置为“False”。
    3. 将“数据类型”设置为“int”。
    4. 将“默认值”留空。
    5. 将“IsIdentity”设置为“True”。
  4. 现在,单击“索引/键”图标将此字段设为主键。 此时会打开一个新对话框。

  5. 在对话框中,单击“添加”按钮,然后填写主键信息,如下所示:

    1. 将“列”设置为“ACId”。
    2. 将“是否唯一”设置为“True”。
    3. 将“类型”设置为“主键”。
    4. 将“名称”设置为“PK_ACId”。
  6. 单击“关闭”以关闭对话框。

  7. 单击工具栏中的“新建列”,为引用的用户添加另一列。

  8. 在“列属性”中,执行以下操作:

    1. 键入“UserId”作为列名称。
    2. 将“允许为 Null”设置为“False”。
    3. 将“数据类型”设置为“int”。
    4. 将“IsIdentity”设置为“False”。
  9. 单击工具栏中的“新建列”,为资源添加另一列。

  10. 在“列属性”中,执行以下操作:

    1. 键入“ResourceURL”作为列名称。
    2. 将“允许为 Null”设置为“False”。
    3. 将“数据类型”设置为“varchar”。
    4. 将“长度”设置为 200。
  11. 最后,单击工具栏中的“新建列”,添加另一列以指定访问权限。

  12. 在“列属性”中,执行以下操作:

    1. 键入“IsUserAllowed”作为列名称。
    2. 将“允许为 Null”设置为“False”。
    3. 将“数据类型”设置为“Bit”。
    4. 将“默认值”设置为“False”。
  13. 单击工具栏上的“保存”,将打开保存对话框。
    Screenshot of Database Manager. Column Name A C I d is highlighted.

  14. 在“表名称”中,键入“AccessControls”。 还可以指定架构或将“架构名称”字段留空,以便为数据库用户使用默认架构。

修改现有表

使用数据库管理器可以编辑现有表的定义。 更具体而言,可以执行以下操作:

  • 添加、修改或删除新列。
  • 添加、修改或删除主键。
  • 添加、修改或删除外键关系。

创建两个表“FabrikamUsers”和“AccessControls”后,让我们将它们链接在一起。 我们需要编辑“AccessControls”表并向“FabrikamUsers”表添加外键关系:

  1. 打开 IIS 管理器并导航到数据库管理器。
  2. 展开数据库管理器树状视图中的数据库连接节点(有关创建数据库连接的详细信息,请参阅 IIS 数据库管理器基础知识)。
  3. 展开“表”节点。 现在应会看到所有数据库表的列表,包括“FabrikamUsers”和“AccessControls”。
  4. 选择“AccessControls”,然后单击工具栏上的“打开表定义”。 此时会打开一个表设计视图,并显示我们在“创建新表”中创建的列。
    Screenshot of Database Manager tree view. Tables node is expanded. Open Table Definition is selected.
  5. 在表设计视图的工具栏上,单击“关系”。 此时会打开“外键关系”对话框。
    Screenshot of Database Manager dialog. Within the Table pane the Relationships button is highlighted.
  6. 单击“添加” 。 将显示新的外键关系编辑器。
  7. 在外键关系编辑器中,选择“表和列规范”,然后单击省略号“…”按钮。 此时会打开“表和列”对话框。 Screenshot of the Foreign Key Relationships dialog box. F K underscore Access Controls underscore one is selected in the left pane. In the right pane, Tables and Columns Specification is selected and the ellipsis button is highlighted.
  8. 在“关系名称”字段中,键入“FK_AccessControlsForUsers”。
  9. 在“主键表”下拉列表中,选择“FabrikamUsers”。 现在,应会看到“FabrikamUsers”表中主键的下拉列表。 确保已选择“UserId”。
  10. 在第二个下拉列表中,应会看到“AccessControls”中的列列表。 选择“UserId”,然后单击“确定”关闭对话框。
    Screenshot of the Tables and Columns dialog box. In the Relationship name box F K underscore Access Controls For Users is written. In the Primary Key Table box d b o dot Fabrikam Users is written. In the second drop down, User I D is selected.
  11. 单击“外键关系”对话框中的“关闭”。
    Screenshot of Foreign Key Relationships dialog box. In the left pane F K underscore Access Controls For Users is selected. In the right pane Tables and Columns Specification is selected.
  12. 单击“保存”更新表。 现在我们在“FabrikamUsers”表和“AccessControls”表之间创建了一个关系。

更改表数据

使用数据库管理器可以修改现有表中的数据。 更具体而言,可以执行以下操作:

  • 添加新行。
  • 修改现有行中的值(适用于支持的数据类型<支持的数据类型的链接>)。
  • 删除现有行。

让我们开始使用一些用户信息填充“FabrikamUsers”和“AccessControls”表:

  1. 打开 IIS 管理器并导航到数据库管理器。
  2. 展开数据库管理器树状视图中的数据库连接节点(有关创建数据库连接的详细信息,请参阅 IIS 数据库管理器基础知识)。
  3. 展开“表”节点。 现在应会看到所有数据库表的列表,包括“FabrikamUsers”和“AccessControls”。
  4. 右键单击“FabrikamUsers”,然后选择“显示表数据”。 现在应会看到表中的数据。 还应有一行前面带有“*”,可用该行来输入新数据。 Screenshot of Tables node and list of database tables. The Table title d b o dot Fabrikam Users is selected. Show Table Data is highlighted.
  5. 在新行 (*) 中,单击“Username”列,然后键入“John Doe”。 接下来,单击“Email”列,然后键入“JohnDoe@fabrikam.com”。 Screenshot of Table node and list of database tables in the left pane. In the right pane under the heading User I D a number one is written and highlighted in the first column and first row.
  6. 输入新行的信息后,按 Enter 键。 信息现已保存在数据库中。 请注意,“UserId”字段会自动填充增量值,因为该字段被标记为标识。
  7. 再添加几行示例用户名和电子邮件地址。
  8. 右键单击“AccessControls”,然后选择“显示表数据”。 现在应会看到表中的数据。 还应有一行前面带有“*”,可用该行来输入新数据。
  9. 在新行 (*) 中,单击“UserId”列,然后键入“1”。 输入此 UserId 值将指向“FabrikamUsers”表中的第一条记录(根据我们的示例,该记录应为“John Doe”。
  10. 接下来,单击“ResourceURL”列并键入“admin.aspx”,然后在 IsUserAllowed 列中键入“True”。 这意味着用户“John Doe”可以访问虚构站点的 admin.aspx 页面。
    Screenshot of Database Manager dialog box. In the left pane is the Tables node. In the right pane in the column titled A C I d the number one is written and highlighted.
  11. 再添加几行其他用户的访问权限示例。

现在,表中已有一些数据,让我们修改和删除现有行:

  1. 单击要修改的任何表格单元格。 在单元格中键入新值。 请注意,正在编辑的行旁边会显示铅笔。
  2. 单击另一个单元格或关闭表格以保存信息。 请注意,信息将保存到服务器,铅笔图标消失。
  3. 现在,通过单击行左侧的箭头选择一行,然后单击工具栏上的“删除”按钮。 删除之前,会弹出对话框要求确认。 Screenshot of the Table. The Delete button in the toolbar is highlighted. The fourth row is selected.
  4. 如果选择“是”,则会在服务器上删除该信息行。