本地数据概述

更新:2007 年 11 月

术语“本地数据”指您的应用程序和本地计算机上的数据库文件之间的连接(相对于到远程服务器上的数据库的连接)。SQL Server Compact 3.5 数据库文件 (.sdf)、SQL Server 和 SQL Server Express 数据库文件 (.mdf) 以及 Microsoft Access 数据库文件 (.mdb) 都是当前支持的本地数据库文件。

说明:

客户端应用程序的首选本地数据库是 SQL Server Compact 3.5。有关更多信息,请参见 SQL Server Compact 3.5 和 Visual Studio

您可以使用数据源配置向导“添加新项”对话框或“服务器资源管理器”/“数据库资源管理器”中的“数据连接”节点,来创建到数据库文件的连接。

说明:

将 .sdf、.mdf, 或 .mdb 文件从 Windows 资源管理器中拖到解决方案资源管理器中,以自动配置您的连接并启动“数据源配置向导”。然后,您就可以选择要在应用程序中使用的对象了。

下表提供了介绍如何将应用程序连接到本地数据的主题的链接:

主题

说明

演练:创建 SQL Server Compact 3.5 数据库

提供创建可用于测试数据功能并创建应用程序的本地数据库文件的分步说明。

演练:创建 SQL Server Express 数据库

提供了创建可用于测试数据功能和应用程序生成的本地数据库文件的分步介绍。

如何:连接到 SQL Server Express 数据库中的数据

提供了在应用程序和 SQL Server Express 数据库文件 (.mdf) 之间创建连接的常规介绍。

演练:连接到 SQL Server Express 数据库中的数据

提供了创建简单的 Windows 应用程序时连接到 SQL Server Express 数据库的分步介绍。

如何:连接到 Access 数据库中的数据

提供了在应用程序与 Microsoft Access 数据库文件 (.mdb) 之间创建连接的介绍。

演练:连接到 Access 数据库中的数据

提供了连接到 Microsoft Access 数据库的分步示例。

如何:创建到 Northwind 数据库的数据连接

提供有关连接到 SQL Server、SQL Server Compact 3.5、SQL Server Express 和 Northwind 示例数据库的 Access 版本的详细信息。

在创建配置用于访问本地数据文件的数据源后,您就可以使用在处理任何其他源中的数据时所用的技术和对象,来处理此数据源中的数据。有关更多信息,请参见 创建客户端数据应用程序

数据库是应用程序的一部分

使用本地数据方法,不仅可以连接到数据库文件,而且还可以将数据库文件集成到您的应用程序中。例如,您可以在“项目”菜单中单击“添加现有项”,浏览到现有的 .sdf、.mdf 或 .mdb 文件,并将该文件添加到您的项目中。

注意   如果使用“数据源配置向导”为本地数据文件创建数据源,则会询问您是否要在项目中包含该文件。如果选择否,则应用程序将只包含指向硬编码路径而非实际数据文件的连接字符串。有关更多信息,请参见如何:管理项目中的本地数据文件

添加本地数据文件会创建类型化数据集和指向应用程序中数据库文件的动态连接字符串。将数据库文件添加到项目中时,使用“数据源配置向导”选择要包括在数据集中的对象。

完成该向导后,数据库文件和数据集将显示在“解决方案资源管理器”/“数据库资源管理器”中,并且选定的数据库对象在“数据源”窗口中可用。可以将某些项从“数据源”窗口拖到您的窗体上,以创建绑定到基础数据的控件。(请从“数据”菜单中选择“显示数据源”,以打开“数据源”窗口。)。有关更多信息,请参见在 Windows 应用程序中的窗体上显示数据

每个项目中存在数据库的两个副本

生成项目时,可以将数据库文件从根项目文件夹中复制到输出(“bin”)文件夹中。(在“解决方案资源管理器”中单击“显示所有文件”按钮,可查看该“bin”文件夹。)此行为取决于该文件的“复制到输出目录”属性。“复制到输出目录”属性的默认设置取决于您所使用的数据库文件的类型。

说明:

“复制到输出目录”属性的行为不会应用到 Web 或 C++ 项目。

项目根文件夹中的数据库文件仅在您使用“服务器资源管理器”/“数据库资源管理器”或其他 Visual Database Tools 编辑数据库架构或数据时才会更改。

数据库文件的行为取决于“复制到输出目录”属性的设置,有关此设置的详细信息请参见下表。

应用程序开发期间,任何对数据所做的更改(在应用程序内的运行期间)都会同样实施到 bin 文件夹的数据库中。例如,当您按“F5”调试您的应用程序时,您将连接到“bin”文件夹中的数据库。

“复制到输出目录”设置

行为

如果较新则复制(.sdf 文件的默认值)

项目首次生成时,会将数据库文件从项目目录复制到 bin 目录。以后每次生成项目时,会比较文件的“修改日期”属性。如果项目文件夹中的文件较新,会将此文件复制到 bin 文件夹,替换当前在那里的文件。如果 bin 文件夹中的文件较新,则不会复制文件。

警告:

对于 .mdb 或 .mdf 文件,不建议使用此选项。即使未对数据进行任何更改,数据库文件也可能更改。只须打开数据文件上的连接(例如,在“服务器资源管理器”中展开“表”节点),即可将其标记为较新的文件。由于此行为不可预测,所以建议不要对 .mdb or .mdf 文件使用此选项。

始终复制(.mdf 或 .mdb 文件的默认值)

每次生成应用程序时,都会将数据库文件从项目目录复制到 bin 目录。您每次在生成应用程序后将保存对数据的更改,而当原文件被复制到 bin 目录,替换刚刚更改过的副本时,将覆盖那些更改。下次运行应用程序时,看不到已更新的数据。下次运行应用程序时,会覆盖任何对输出文件夹中的数据文件所做的更改。

不复制

项目系统从不复制或覆盖文件。因为应用程序创建了指向输出目录中的数据库文件的动态连接字符串,所以只有在您自己手动复制文件时,此设置才能用于本地数据库文件。设置为“不复制”后,必须手动将文件复制到输出目录中。

本地数据常见问题

下表提供了使用本地数据文件时会遇到的常见问题的解释。

问题

说明

每次我测试我的应用程序并修改数据后,下次运行此应用程序时我的更改都消失了。

“复制到输出目录”被设置为“如果较新则复制”或“始终复制”。这些设置会在每次生成项目时覆盖输出文件夹中的数据库(测试应用程序时被修改的数据库)。有关更多信息,请参见如何:管理项目中的本地数据文件

我收到一条消息,指示数据文件被锁定。

对于 Access(.mdb 文件):请验证是否未在其他程序中打开此文件,例如在 Access 中。

对于 SQL Server Express(.mdf 文件):如果试图在 Visual Studio IDE 外部复制、移动或重命名数据文件,SQL Express 会锁定该数据文件。

Access 拒绝两个用户试图同时访问数据库。

Visual Studio 利用 SQL Server Express 的“用户实例”功能,此功能会为每个用户创建 SQL Server 的独立实例。一旦某个用户访问文件,其他的后续用户将无法连接。例如,因为 IIS 通常是在不同帐户下运行的,如果您试图同时在 ASP.NET Development Server 和 IIS 上运行 Web 应用程序,则可能会出现这种情况。

请参见

任务

如何:连接到 SQL Server Express 数据库中的数据

如何:连接到 Access 数据库中的数据

演练:连接到 SQL Server Express 数据库中的数据

演练:连接到 Access 数据库中的数据

如何:向项目添加 SQL Server Compact 3.5 数据库

如何:将 SQL Server Compact 3.5 数据库与应用程序一起部署

演练:创建 SQL Server Compact 3.5 数据库

演练:将 SQL Server Compact 3.5 数据库添加到应用程序中并进行部署