使用 Visual Studio 在 .NET Framework 应用程序中创建数据库并添加表

注意

数据集和相关类是 2000 年代初的旧 .NET Framework 技术,使应用程序能够在应用程序与数据库断开连接时处理内存中的数据。 这些方法对于使用户能够修改数据并持续更改回数据库的应用程序特别有用。 虽然数据集已被证明是一项非常成功的技术,但我们建议新的 .NET 应用程序使用 Entity Framework Core。 实体框架提供了一种更自然的方式来将表格数据作为对象模型,并且具有更简单的编程接口。

可以使用 Visual Studio 创建和更新 SQL Server Express LocalDB 中的本地数据库文件。 还可以通过在 Visual Studio 的 SQL Server 对象资源管理器工具窗口中执行 Transact-SQL 语句来创建数据库。 在本主题中,你将使用表设计器创建 .mdf 文件并添加表和键。

先决条件

要完成本演练,你需要在 Visual Studio 中安装“.NET 桌面开发”以及“数据存储和处理”工作负载。 若要安装这些程序,请打开 Visual Studio 安装程序,然后在要修改的 Visual Studio 版本旁选择“修改”(或“更多”>“修改”)。 请参阅修改 Visual Studio

注意

本文中的步骤仅适用于 .NET Framework Windows 窗体项目,不适用于 .NET Core Windows 窗体项目。

创建一个项目及本地数据库文件

  1. 创建一个新的 Windows 窗体应用 (.NET Framework) 项目,并将其命名为 SampleDatabaseWalkthrough。

  2. 在菜单栏上,依次选择“项目”>“添加新项”。 如果显示带有文件名框的小对话框,请选择“显示所有模板”。

  3. 在项模板列表中,向下滚动并选择“基于服务的数据库”。

    添加新项>基于服务的数据库

    添加新项>基于服务的数据库

  4. 将数据库命名为 SampleDatabase.mdf,然后选择添加

添加数据源

  1. 如果“数据源”窗口未打开,通过按 Shift + Alt + D 或选择菜单栏上的“查看”>“其他窗口”“数据源”>来将其打开。

  2. 在“数据源”窗口中,选择“添加新的数据源”。

    在 Visual Studio 中添加新数据源

    在 Visual Studio 中添加新数据源

    “数据源配置”向导随即打开。

  3. 在“选择数据源类型”页上,选择“数据库”,然后单击“下一步”。

  4. 在“选择数据库模型”页上,选择“下一步”以接受默认(数据集)。

  5. 在“选择数据连接”页上,在下拉列表中选择 SampleDatabase.mdf 文件,然后选择“下一步”

  6. 在“将连接字符串保存到应用程序配置文件”页上,选择“下一步”。

  7. 在“选择数据库对象”页上,你将看到提示数据库不包含任何对象的消息。 选择“完成”。

注意

在实际应用程序中,应安全地存储连接字符串,如连接字符串和配置文件中所述。 为了获得最佳安全性,请使用不依赖于在连接字符串中存储密码的身份验证方法,例如适用于本地 SQL Server 数据库的 Windows 身份验证。 请参阅保存和编辑连接字符串

查看数据连接的属性

可以通过打开数据连接的“属性”窗口来查看 SampleDatabase.mdf 文件的一些属性

  • 选择“查看”>“SQL Server 对象资源管理器”(或 Ctrl+\Ctrl+S)以打开“SQL Server 对象资源管理器”窗口。 展开“(localdb)\MSSQLLocalDB”>“数据库”,然后右键单击 SampleDatabase.mdf(可能是以完整路径列出)并选择“属性”。

  • 或者,如果窗口尚未打开,则可以选择“查看”>“服务器资源管理器”。 通过展开“数据连接”节点、右键单击 SampleDatabase.mdf,然后选择“属性”可以打开“属性”窗口。

    提示

    如果无法展开“数据连接”接口或未列出 SampleDatabase.mdf 连接,请选择“服务器资源管理器”工具栏中的“连接到数据库”按钮。 在“添加连接”对话框中,确保在“数据源”下选择了“Microsoft SQL Server 数据库文件”,然后浏览到 SampleDatabase.mdf 文件并选择该文件。 通过选择“确定”完成添加连接。

若要查看连接字符串,可以在解决方案资源管理器中打开 App.config 文件。 应会在 connectionStrings 元素下看到类似于以下代码的条目:

    <connectionStrings>
        <add name="SampleDatabaseWalkthrough.Properties.Settings.SampleDatabaseConnectionString"
            connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\SampleDatabase.mdf;Integrated Security=True"
            providerName="System.Data.SqlClient" />
    </connectionStrings>

使用表设计器创建表和键

在本节中,你将创建两个表,每个表中有一个主键和几行示例数据。 你还将创建外键以指定一个表中的记录如何对应于另一个表中的记录。

创建 Customers 表

  1. 在“服务器资源管理器”或“SQL Server 对象浏览器”中,依次展开“数据连接”节点和“SampleDatabase.mdf”节点。

  2. 右键单击“表”,然后选择“添加新表” 。

    “表设计器”将打开并显示一个网格,其中有一个默认行,表示所创建表中的一列。 通过向网格中添加行,即可在表中添加列。

  3. 在网格中,为下列各个条目添加行:

    列名称 数据类型 允许空
    CustomerID nchar(5) False(清除)
    CompanyName nvarchar(50) False(清除)
    ContactName nvarchar (50) True(已选定)
    Phone nvarchar (24) True(已选定)
  4. CustomerID 行上右键单击,然后选择“设置主键”。

  5. 在默认行 (Id) 上右键单击,然后选择“删除”。

  6. 通过更新脚本窗格的第一行来命名 Customers 表,与以下示例相匹配:

    CREATE TABLE [dbo].[Customers]
    
  7. 向“客户”表添加索引约束。 在 Phone 行末尾添加一个逗号,然后在右括号前添加以下示例:

    CONSTRAINT [PK_Customers] PRIMARY KEY ([CustomerID])
    

    你应看到与下面类似的内容:

    具有 Customers 表的表设计器

    具有 Customers 表的表设计器

  8. 在“表设计器”的左上角中,选择“更新”,或按 Shift + Alt + U。

  9. 在“预览数据库更新”对话框中,选择“更新数据库”。

    在本地数据库文件中创建了 Customers 表。

创建 Orders 表

  1. 添加另一个表,然后在下表中为每个条目添加行:

    列名称 数据类型 允许空
    OrderID int False(清除)
    CustomerID nchar(5) False(清除)
    OrderDate datetime True(已选定)
    OrderQuantity int True(已选定)
  2. 将“OrderID”设置为主键,然后删除默认行。

  3. 通过更新脚本窗格的第一行来命名 Orders 表,与以下示例相匹配:

    CREATE TABLE [dbo].[Orders]
    
  4. 向“客户”表添加索引约束。 在 OrderQuantity 行末尾添加一个逗号,然后在右括号前添加以下示例:

    CONSTRAINT [PK_Orders] PRIMARY KEY ([OrderId])
    
  5. 在“表设计器”的左上角中,选择“更新”,或按 Shift + Alt + U。

  6. 在“预览数据库更新”对话框中,选择“更新数据库”。

    在本地数据库文件中创建了 Orders 表。 如果在服务器资源管理器中展开“表”节点,则可以看到两个表:

    服务器资源管理器中展开的“表”节点

    服务器资源管理器中展开的“表”节点

    如果看不到,则点击“刷新”工具栏按钮。

创建外键

  1. 在 Orders 表的“表设计器”网格的右侧上下文窗格中,右键单击“外键”,然后选择“添加新的外键”。

    在 Visual Studio 的表设计器中添加外键

    在 Visual Studio 的表设计器中添加外键

  2. 在显示的文本框中,将文本“ToTable”替换为“Customers” 。

  3. 在 T-SQL 窗格中,更新最后一行以与以下示例相匹配:

    CONSTRAINT [FK_Orders_Customers] FOREIGN KEY ([CustomerID]) REFERENCES [Customers]([CustomerID])
    
  4. 在“表设计器”的左上角中,选择“更新”(Shift + Alt + U)。

  5. 在“预览数据库更新”对话框中,选择“更新数据库”。

    将创建外键。

将数据填入表中

  1. 在“服务器资源管理器”或“SQL Server 对象资源管理器”中,展开示例数据库的节点。

  2. 打开“表”节点的快捷菜单,选择“刷新”,然后展开“表”节点。

  3. 打开“客户”表的快捷菜单,然后选择“显示表数据”或“查看数据”。

  4. 为一些客户添加任何所需数据。

    你可以指定任意五个字符作为客户 ID,但至少选择一个能记住的以便稍后在此过程中使用。

  5. 打开“订单”表的快捷菜单,然后选择“显示表数据”或“查看数据”。

  6. 为一些订单添加数据。 输入每一行时,该行将保存在数据库中。

    重要

    请确保所有订单 ID 和订单数量是整数,并且每个客户 ID 与 Customers 表中的“CustomerID”列中指定的值匹配。

祝贺你! 现在已经了解如何创建表、将其与外键链接并添加数据。