如何:管理项目中的本地数据文件
本地数据库文件可以作为一个文件包含在项目中。 首次将您的应用程序连接到本地数据库文件时,可以选择在您的项目中创建数据库的一个副本,或者连接到其当前位置中的现有数据库文件。 如果选择连接到现有文件,则会创建一个连接,就如同正连接到任何远程数据库一样,并且该数据库文件保留在其原始位置。 如果选择将数据库复制到项目中,Visual Studio 将创建数据库文件的一个副本,将它添加到项目中,并修改连接以使它现在指向项目中的数据库而不是指向数据库文件的原始位置。
提示
“服务器资源管理器/数据库资源管理器”中的现有数据连接也会修改为指向项目中的数据库文件(项目的根文件夹中的数据库文件)。
生成项目时,可以将数据库文件从根项目文件夹中复制到输出(“bin”)文件夹中。 (在**“解决方案资源管理器”中选择“显示所有文件”,可查看该“bin”文件夹。)此行为是由文件的“复制到输出目录”**属性导致的。 **“复制到输出目录”**属性的默认设置取决于您所使用的数据库文件的类型。
提示
“复制到输出目录”属性的行为不会应用到 Web 或 C++ 项目。
项目根文件夹中的数据库文件仅在您使用**“服务器资源管理器”/“数据库资源管理器”**或其他 Visual Database Tools 编辑数据库架构或数据时才会更改。
数据库文件的行为取决于**“复制到输出目录”**属性的设置,有关此设置的详细信息请参见下表。
在应用程序开发过程中,对数据所做的任何更改(在运行时过程中在应用程序内部进行的)都将反映到**“bin”文件夹中的数据库。 例如,当您按“F5”调试您的应用程序时,您将连接到“bin”**文件夹中的数据库。
“复制到输出目录”设置 |
行为 |
---|---|
如果较新则复制(.sdf 文件的默认值) |
首次生成项目时将数据库文件从项目目录复制到“bin”目录。 随后每次生成项目时,将比较文件的“修改日期”属性。 如果项目文件夹中的文件较新,则将其复制到“bin”文件夹,替换当前此处的文件。 如果“bin”文件夹中的文件较新,则不复制文件。 此设置保持在运行时对数据所做的任何更改,这意味着每次运行应用程序并保存对数据的更改时,这些更改在下次运行应用程序时是可见的。
警告
对于 .mdb 或 .mdf 文件,不建议使用此选项。数据库文件甚至可以在没有对数据进行更改时更改。只须打开数据文件上的连接(例如,在“服务器资源管理器”中展开“表”节点),即可将其标记为较新的文件。由于此行为不可预测,所以建议不要对 .mdb 或 .mdf 文件使用此选项。
|
始终复制(.mdf 和 .mdb 文件的默认值) |
每次生成应用程序时,数据库文件就从项目目录复制到“bin”目录。 每次生成应用程序并保存对数据的更改时,在将原始文件复制到“bin”目录时会覆盖这些更改,以替换刚刚更改的副本。 下次运行应用程序时将看不到更新后的数据。 对输出文件夹中数据文件的任何更改将在下次运行应用程序时被覆盖。 |
不复制 |
项目系统从不复制或覆盖文件。 由于应用程序会创建一个指向输出目录中数据库文件的动态连接字符串,因此当您亲自手动复制文件时,此设置仅适用于本地数据库文件。 在设置为“不复制”后,您必须手动将文件复制到输出目录。 |
过程
响应“本地数据库文件”对话框
如果希望 Visual Studio 将数据库文件复制到项目中并修改连接以指向项目中的副本,请单击**“是”**。 有关使用项目中的数据库文件的更多信息,请参见 本地数据概述。
如果不希望 Visual Studio 将数据库文件复制到项目中,请单击**“否”**。 相反,连接将指向原始位置中的文件,并且未以文件形式将数据库文件添加到项目中。
请参见
任务
演练:连接到 SQL Server Express 数据库中的数据(Windows 窗体)
演练:连接到 Access 数据库中的数据(Windows 窗体)
演练:创建 SQL Server Compact 3.5 数据库