在 Visual Studio 中连接到数据库

本文中的步骤演示如何连接到 Visual Studio IDE 中的数据源。 数据源可以是本地数据库、联机数据服务或从 .mdf 文件打开的数据库。 可以直接在 Visual Studio 中使用数据。 可以执行查询、编辑数据、创建和编辑表和其他架构属性、编辑存储过程和函数、触发器等。 这些函数独立于使用的编程语言或 .NET 版本。

如果使用 Access 数据库(.accdb 文件),请参阅 连接到 .NET Framework 应用程序中的 Access 数据库

服务器资源管理器和 SQL Server 对象资源管理器

可以使用.mdfSQL Server 对象资源管理器打开与数据库或服务的连接,或者从文件打开的 LocalDB 数据库,以及查看和编辑表和数据行。 这些窗口的功能在某种程度上重叠。 基本区别如下:

  • 服务器资源管理器

    默认情况下,在 Visual Studio 中安装。 可用于测试连接和查看 SQL Server 数据库、安装了 ADO.NET 提供程序的任何其他数据库以及某些 Azure 服务。 此外,还显示低级别对象,例如系统性能计数器、事件日志和消息队列。 如果数据源没有 ADO.NET 提供程序,它将不会显示在此处,但你仍然可以通过编程方式从 Visual Studio 使用它。

  • SQL Server 对象浏览器

    随 SQL Server Data Tools 一起安装,并在 “视图” 菜单下可见。 如果没有看到它,请转到控制面板中的 “程序和功能 ”,找到 Visual Studio,然后选择“ 更改 ”以在选中 SQL Server Data Tools 复选框后重新运行安装程序。 使用 SQL Server 对象资源管理器查看 SQL 数据库(如果有 ADO.NET 提供程序),创建新数据库、修改架构、创建存储过程、检索连接字符串、查看数据等。 未安装 ADO.NET 提供程序的 SQL 数据库不会在此处显示,但你仍然可以以编程方式连接到它们。

在服务器资源管理器中添加连接

若要创建与数据库的连接,请单击服务器资源管理器中的“连接到数据库”图标,或右键单击“数据连接”节点上的服务器资源管理器,然后选择“添加连接”。 在此处,可以打开与从 .mdf 文件打开的 LocalDB 数据库的连接,连接到另一台服务器上的数据库、SharePoint 服务或 Azure 服务。

显示“服务器资源管理器连接到数据库”图标的屏幕截图。

此时会显示 “添加连接 ”对话框。 在这里,我们输入了 SQL Server LocalDB 实例的名称, (localdb)\MSSqlLocalDB该实例通常随 Visual Studio 一起安装。

如果你无权访问另一个数据库,并且未安装 LocalDB,则可以通过 Visual Studio 安装程序安装 LocalDB,作为 数据存储和处理 工作负荷的一部分、 ASP.NET 和 Web 开发 工作负载,或作为单个组件安装 LocalDB。 请参阅修改 Visual Studio

“添加新连接”对话框的屏幕截图。

在 Visual Studio 2022 版本 17.8 及更高版本中,该对话框包含两个新选项(加密信任服务器证书),这些选项会进入连接字符串并影响用于连接的安全设置。 这些选项支持 Microsoft.Data.SqlClient 4.0 数据库驱动程序的更严格的安全功能。 请参阅 加密和证书验证行为的更改

建议的安全做法是使用加密并在服务器上为其安装证书。 请参阅 加密和证书验证。 若要选择退出此增强的安全性,请将“加密”设置为“可选”(False)。

如果您未使用 Microsoft.Data.SqlClient 版本 4.0 的 Visual Studio 17.8 或更高版本将Encrypt设置为可选,则加密默认为必需。 这是与早期版本不同的行为上的重大变更。 如果没有有效的证书或未选择 “信任服务器证书”,将收到以下错误消息:

在此连接上启用了加密,查看目标 SQL Server 的 SSL 和证书配置,或在连接对话框中启用“信任服务器证书”。

其他信息

已成功与服务器建立连接,但在登录过程中发生错误。 (提供程序:SSL 提供程序,错误:0 - 证书链是由不受信任的颁发机构颁发的。(Microsoft SQL Server)

身份验证类型

可以从涵盖各种方案的各种身份验证类型中进行选择。 有关详细信息,请参阅 身份验证类型

在 Visual Studio 17.8 及更高版本中,SQL 连接的身份验证选项的名称已更新,以反映从 Active Directory 更改为 Microsoft Entra 的名称。

显示 Visual Studio 17.8 及更高版本的身份验证类型的屏幕截图。

打开 MDF 数据库文件

该文件 .mdf 代表 Master 数据库文件,是打包到文件中的 SQL 数据库。 这些文件具有一个关联的 .ldf (日志文件),其中包含该数据库的日志。 通过将.mdf项添加到项目中,可以创建存储在文件中的新数据库。 请参阅 “创建数据库”并添加表

如果项目中已有 .mdf 文件,可以双击或右键单击并选择 “打开 ”以在服务器资源管理器中打开它。

若要在 Visual Studio 的服务器资源管理器中打开 .mdf 不在项目中的文件,请执行以下步骤:

  1. 在“添加连接”对话框中的“数据源”下,选择Microsoft SQL Server 数据库文件(SqlClient)。

  2. 使用 “浏览 ”按钮查找并选择主数据库文件(.mdf 文件),或在 “数据库文件名 ”框中输入路径。

    显示“添加连接”对话框的屏幕截图,其中连接到 SQL 数据库文件。

  3. 选择身份验证方法。

  4. 测试连接,如果连接成功,请选择 “确定”。 数据库节点将在服务器资源管理器中打开。

更改提供程序

如果数据源不是所需数据源,请单击 “更改 ”按钮以选择新的数据源或新的 ADO.NET 数据提供程序。 新提供程序可能会请求你的凭据,具体取决于你的配置方式。

注释

如果使用 Visual Studio 2022 连接到 OLEDB 或 ODBC 数据提供程序,则需要注意 Visual Studio 2022 现在是 64 位进程。

这意味着 Visual Studio 中的某些数据工具无法使用 32 位数据提供程序连接到 OLEDB 或 ODBC 数据库。 这包括 Microsoft Access 32 位 OLEDB 数据提供程序以及其他第三方 32 位提供程序。

如果需要维护连接到 OLEDB 或 ODBC 的 32 位应用程序,仍可使用 Visual Studio 2022 生成和运行该应用程序。 但是,如果需要使用任何 Visual Studio Data Tools(如服务器资源管理器、数据源向导或数据集设计器),则需要使用仍处于 32 位进程的早期版本的 Visual Studio。 作为 32 位进程的 Visual Studio 的最后一个版本是 Visual Studio 2019。

如果计划将项目转换为 64 位进程,则需要更新 OLEDB 和 ODBC 数据连接以使用 64 位数据提供程序。

如果应用程序使用 Microsoft Access 数据库,并且可以将项目转换为 64 位,则建议使用 64 位 Microsoft Access 数据库引擎(也称为 Access 连接引擎(ACE)。 有关详细信息,请参阅 适用于 Jet 和 ODBC 驱动程序的 OLE DB 提供程序仅为 32 位版本

如果使用的是第三方数据提供程序,我们建议与供应商连接,查看它们是否在将项目转换为 64 位之前提供 64 位提供程序。

显示如何更改 ADO.NET 数据提供程序的屏幕截图。

测试连接

选择数据源后,单击“ 测试连接”。 如果未成功,则需要根据供应商的文档进行故障排除。

显示“测试连接成功”消息框的屏幕截图。

如果测试成功,则可以创建 数据源,这是一个 Visual Studio 术语,它实际上意味着基于基础数据库或服务 的数据模型

使用 SQL Server 对象资源管理器进行连接

如果使用 SQL Server 对象资源管理器,则体验可能更容易,该资源管理器提供了一个对话框,可在本地、本地网络上和 Azure 订阅中查找可用数据库,并提供最近使用选项的历史记录。

若要从 SQL Server 对象资源管理器访问连接对话框,请单击工具栏按钮 “添加 SQL Server”。

SQL Server 对象资源管理器“添加 SQL Server”按钮的屏幕截图

“连接”对话框随即出现。 选择本地、网络或 Azure SQL Server,选择数据库,提供凭据,然后选择 “连接”。

SQL Server 对象资源管理器连接对话框的屏幕截图。

如果需要在连接字符串中设置其他设置,可以使用 “高级 ”链接来显示所有设置。 例如,若要连接到基于 MDF 文件的 LocalDB 数据库,请选择 “高级 ”,然后设置属性 AttachDbFilename

显示高级设置的屏幕截图。

完成连接设置后,服务器和数据库将显示在 SQL Server 对象资源管理器窗口中。

显示“连接成功”消息的屏幕截图。

在此处,可以浏览数据库、编写和执行查询、编辑数据、存储过程和函数,以及直接在 Visual Studio 中执行其他作。

后续步骤

如果使用 .NET Framework(而不是 .NET Core 或 .NET 5 或更高版本),并且 Windows 窗体或 WPF,可以使用 “数据源 ”窗口(例如,为 Windows 窗体和 WPF 应用程序中的控件设置数据绑定),请参阅 “添加新数据源”。 这些工具旨在使你能够快速创建需要允许用户输入、显示和作数据的 Windows 应用程序。

如果使用 .NET 5 或更高版本、.NET Core 或 ASP.NET Core,则可以使用 Connected Services 将应用连接到数据库。 使用 Connected Services,可以轻松使用由 SQL LocalDB 托管的本地开发数据库、容器中运行的 SQL Server 或 SQL Server 的本地实例,然后在准备好部署到云时过渡到 Azure SQL 数据库。 对于 .NET 5 或更高版本,.NET Core 和 ASP.NET Core,应考虑使用 Entity Framework Core 作为数据库框架。