使用 Visual Studio 在 .NET Framework 应用程序中创建数据库并添加表
说明
数据集和相关类是 2000 年代初的旧 .NET Framework 技术,使应用程序能够在应用程序与数据库断开连接时处理内存中的数据。 这些技术对于使用户能够修改数据并将更改保留回数据库的应用程序特别有用。 尽管数据集被证明是非常成功的技术,但我们建议新的 .NET 应用程序使用 Entity Framework Core。 Entity Framework 提供了一种更自然的方式来将表格数据用作对象模型,并且具有更简单的编程接口。
可以使用 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 窗体项目。
创建项目和本地数据库文件
创建一个新的 Windows 窗体应用程序(.NET Framework) 项目,并将其命名为 SampleDatabaseWalkthrough。
在菜单栏上,选择 “项目”>“添加新项”。 如果看到包含文件名框的小型对话框,请选择“显示所有模板”。
在项模板列表中,向下滚动并选择 基于服务的数据库。
将数据库命名为 SampleDatabase.mdf,然后选择 添加。
添加数据源
如果 数据源 窗口未打开,可以按 Shift+Alt+D,或在菜单栏选择 视图>其他窗口>数据源 来打开它。
在 数据源 窗口中,选择 添加新数据源。
中添加新数据源
中添加新数据源
此时会打开 数据源配置向导。
在“选择数据源类型”页上,选择“数据库”,然后单击“下一步”。
在 选择数据库模型 页上,选择 “下一步”按钮 以接受默认设置(数据集)。
在“选择数据连接”页上,在下拉列表中选择 SampleDatabase.mdf 文件,然后选择“下一步”。
在“将连接字符串保存到应用程序配置文件”页上,选择“下一步”。
在 “选择数据库对象” 页上,会看到一条消息,指出数据库不包含任何对象。 选择“完成”。
谨慎
在实际应用程序中,应安全地存储连接字符串,如 连接字符串和配置文件中所述。 为了获得最佳安全性,请使用不依赖于在连接字符串中存储密码的身份验证方法,例如本地 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" 表格
在 服务器资源管理器 或 SQL Server 对象浏览器中,展开 数据连接 节点,然后展开 SampleDatabase.mdf 节点。
右键单击“表”,然后选择“添加新表”。
表设计器将打开并显示一个包含一个默认行的网格,该网格表示要创建的表中的单个列。 通过将行添加到网格中,可以在表中添加列。
在网格中,为以下每个条目添加一行:
列名称 数据类型 允许空值 CustomerID
nchar(5)
错误(已清除) CompanyName
nvarchar(50)
假(已清除) ContactName
nvarchar (50)
True(已选定) Phone
nvarchar (24)
是(已选中) 右键单击
CustomerID
行,然后选择 设置主键。右键单击默认行(
Id
),然后选择 删除。通过更新脚本窗格中的第一行来命名 Customers 表,以匹配以下示例:
CREATE TABLE [dbo].[Customers]
向 Customers 表添加索引约束。 在
Phone
行末尾添加逗号,然后在右括号前添加以下示例:CONSTRAINT [PK_Customers] PRIMARY KEY ([CustomerID])
将显示如下所示的内容:
表设计器与 Customers 表
表设计器带有 Customers 表
在“表设计器”的左上角中,选择“更新”,或按 Shift + Alt + U。
在“预览数据库更新”对话框中,选择“更新数据库”。
客户表是在本地数据库文件中创建的。
创建“订单”表
添加另一个表,然后为下表中的每个条目添加一行:
列名称 数据类型 允许空值 OrderID
int
错误(已清除) CustomerID
nchar(5)
错误(已清除) OrderDate
datetime
True(已选定) OrderQuantity
int
是(已选中) 将 OrderID 设置为主键,然后删除默认行。
通过更新脚本窗格中的第一行来命名 Orders 表,以匹配以下示例:
CREATE TABLE [dbo].[Orders]
向 Customers 表添加索引约束。 在
OrderQuantity
行末尾添加逗号,然后在右括号前添加以下示例:CONSTRAINT [PK_Orders] PRIMARY KEY ([OrderId])
在“表设计器”的左上角中,选择“更新”,或按 Shift + Alt + U。
在 “预览数据库更新” 对话框中,选择 “更新数据库”。
在本地数据库文件中创建了 Orders 表。 如果在 服务器资源管理器中展开 表 节点,则会看到这两个表:
在服务器资源管理器中展开的“
在服务器资源管理器中展开的“
如果未看到,请点击 刷新 工具栏按钮。
创建外键
在 Orders 表的“表设计器”网格的右侧上下文窗格中,右键单击“外键”,然后选择“添加新的外键”。
在出现的文本框中,将 ToTable 文本替换为 客户。
在 T-SQL 窗格中,更新最后一行以匹配以下示例:
CONSTRAINT [FK_Orders_Customers] FOREIGN KEY ([CustomerID]) REFERENCES [Customers]([CustomerID])
在“表设计器”的左上角中,选择“更新”(Shift + Alt + U)。
在 预览数据库更新 对话框中,选择 更新数据库。
将创建外键。
使用数据填充表
在 服务器资源管理器 或 SQL Server 对象资源管理器中,展开示例数据库的节点。
打开 表 节点的快捷菜单,选择 刷新,然后展开 表 节点。
打开“客户”表的快捷菜单,然后选择“显示表数据”或“查看数据”。
为一些客户添加任何所需数据。
可以指定任何五个字符作为客户 ID,但选择至少一个可以记住的字符供稍后在此过程中使用。
打开“订单”表的快捷菜单,然后选择 “显示表数据” 或 “查看数据”。
为某些订单添加数据。 输入每一行时,该行将保存在数据库中。
重要
确保所有订单 ID 和订单数量都是整数,并且每个客户 ID 都与在 Customers 表的 CustomerID 列中指定的值匹配。
祝贺! 现在,你已了解如何创建表、将它们与外键链接,以及添加数据。