本地数据概述
当您使用 本地数据时,您将应用程序连接到本地计算机的数据库文件,而不是在单独的服务器上的数据库。例如,可以联接您在Visual Studio开发到的本地数据库文件的应用程序:
SQL Server compact数据库文件(.sdf)
SQL Server express LocalDB数据库文件(.mdf)
SQL Server express数据库文件(.mdf)
Microsoft Access数据库文件(.mdb)
下表提供指向描述如何将应用程序连接到本地数据的主题:
主题 |
说明 |
---|---|
用于创建可用于测试数据功能并生成应用程序的本地数据库文件的分步说明。 |
|
用于创建可用于测试数据功能并生成应用程序的本地数据库文件的分步说明。 |
|
在创建简单的Windows应用程序时,为连接的分步说明到SQL Server express LocalDB数据库。 |
|
提供有关连接到Microsoft Access数据库的分步说明。 |
|
提供有关连接提供命令到 SQL Server、SQL Server express edition、SQL Server或Access的Northwind示例数据库。 |
在创建一个数据源并将其配置为访问本地数据文件后,即可使用数据。通过使用将用于从其他源中的数据时所使用的相同技术和对象。有关更多信息,请参见 创建数据应用程序。
数据库集成到应用程序中
如果要连接到本地数据,不仅可以连接到数据库文件,而且其集成到您的应用程序。例如,可以打开 项目 菜单,浏览到现有的.sdf、.mdf或.mdb文件,然后将其添加到项目中。
如果添加本地数据文件,则会创建类型化数据集和指向应用程序中数据库文件的动态连接字符串。在添加数据库文件添加到项目中时,您使用 *** 数据源配置向导 *** 指定对象中。
说明 |
---|
可以自动配置您的连接并通过从拖动文件资源管理器中.sdf、.mdf或.mdb文件以开始 *** 数据源配置向导 ****** 解决方案资源管理器 ***。可以在应用程序中然后指定对象使用。 |
如果使用 *** 数据源配置向导 *** 为本地数据文件创建数据源,请在项目中提示您的包含文件。如果不包括它,应用程序将包含硬编码路径点仅的连接字符串,而不是使用实际数据文件。有关更多信息,请参见如何:管理项目中的本地数据文件。
在完成向导后,数据库文件和数据集出现在 *** 解决方案资源管理器 ***/*** 数据库资源管理器 ***,因此,您指定的数据库对象将出现在 *** 数据源 *** 窗口。通过从拖动 *** 数据源 *** 窗口拖动到项目中的窗体上,可以创建绑定到基础数据的控件。若要打开 *** 数据源 *** 窗口中,打开 *** 数据 *** 菜单,然后选择 *** 显示数据源 ***。有关更多信息,请参见在 Visual Studio 中将控件绑定到数据。
使用在 Visual Studio 2012的数据库文件
在 Visual Studio 2012可以使用现有数据库文件(.mdf)之前,您可能需要将该文件转换为 SQL Server 2012 数据库文件。当您连接到现有数据库文件时,消息框询问您是否升级。
重要事项 |
---|
如果升级数据库文件(.mdf),您无法打开它在SQL Server的早期版本。 |
您不需要将数据库文件(.mdf),如果 *** SQL Server实例名称 *** 设置为SQLEXPRESS,并且安装SQL Server express 2008。SQL Server express 2008,如果安装了,安装Visual Studio 2010。若要更改实例名称此数据库文件,请打开 Visual Studio 2012,打开 *** 添加连接 *** 对话框中,指定 . \ SQLEXPRESS 用作服务器名,然后指定数据库或数据库文件名。
快速SQL Server express LocalDB和SQL Server
可以添加一个基于服务的数据库文件(.mdf)到Visual Studio中的所有项。您可以使用Visual Studio设计器来设计表和其他数据库对象,因此,您可以运行查询。
在 Visual Studio 2012时创建基于services的数据库,它使用SQL Server express LocalDB引擎访问数据库文件(.mdf),其中Visual Studio的早期版本使用的SQL Server express引擎。
SQL Server express LocalDB是可以程序以多种方式和SQL Server数据库的SQL Server的轻量版本。SQL Server express LocalDB在用户模式下运行,因此,可以快速安装它具有较少必备组件和未配置。
说明 |
---|
有关SQL Server express LocalDB的更多信息,请 表示LocalDB,快速一改进的SQL 参见 LocalDB:在何处我的数据库? 以及Microsoft网站上。 |
默认情况下在 Visual Studio 2012,可以使用SQL Server express而不是SQL Server express LocalDB。在菜单栏上,依次选择 *** 工具 ***,*** 选项 ***。在 *** 数据库工具 *** 节点下,选择 *** 数据连接 ***。在 *** SQL Server实例名称 *** 文本框中,输入 SQLEXPRESS。或者,可以输入SQL Server实例名称(例如,SQL2008)其他值。
下表描述了SQL Server express LocalDB之间的差异以及SQL Server express引擎。
SQL Server Express LocalDB |
SQL Server Express |
|
---|---|---|
数据库类型,将创建一个基于服务的数据库 |
在 Visual Studio 2012,SQL Server express LocalDB |
在Visual Studio 2010和早期版本中,SQL Server express |
SQL Server实例的名称在工具的/选项 |
(LocalDB) \ v11.0 |
SQLEXPRESS |
数据源的值在连接字符串中 |
(LocalDB) \ v11.0 |
.\SQLEXPRESS |
AttachDbFilename的值在连接字符串中 |
文件路径 |
文件路径 |
需要用户实例(“连接字符串的用户Instance=True”) |
否 |
是 |
数据库文件扩展名 |
.mdf |
.mdf |
SQL Server之间的差异表示LocalDB和SQL Server compact
在SQL Server的数据库表示LocalDB (.mdf),而SQL Server compact (.sdf)在以下方面有所不同:
SQL Server express LocalDB与SQL Server的基于服务的版本兼容功能的SQL Server express LocalDB启用。在SQL Server,则可以从SQL Server express LocalDB移动的所有数据库或Transact-SQL代码移动到SQL Server或SQL azure,没有任何升级步骤。因此,可以使用SQL Server express LocalDB开发面向SQL Server的任何编辑应用程序。
如果使用SQL Server express LocalDB,您可以创建存储过程、用户定义的函数和聚合、空间的类型和SQL Server compact不支持的其他对象,并将您的应用程序之外使用.NET Framework。
SQL Server express LocalDB于SQL Server compact可靠且可伸缩的SQL Server express LocalDB支持与SQL Server更高版本的查询优化器和查询处理器。
SQL Server compact数据库在台式计算机和智能设备上部署。有关更多信息,请参见 SQL Server Compact 4.0 和 Visual Studio。
每个项目包含数据库的两个副本
当生成项目时,可以将数据库文件从根项目文件夹复制到输出,*** 框 ***,文件夹。此行为取决于该文件的 *** 复制到输出目录 *** 属性,并且,该属性的默认值取决于数据库文件的类型使用。
若要查看 ***** 解决方案资源管理器 *****的 *** 框 *** 文件夹,请在工具栏上选择 *** 显示所有文件 *** 按钮。
说明 |
---|
*** 复制到输出目录 *** 属性不适用于web或C++项目。 |
项目根文件夹中的数据库文件仅在您使用**“服务器资源管理器”/“数据库资源管理器”**或其他 Visual Database Tools 编辑数据库架构或数据时才会更改。
在应用程序开发过程中,因为将数据,将 *** 框 *** 文件夹中的数据库。例如,那么,当您选择F5键调试应用程序时,您将连接到该文件夹中的数据库。
*** 复制到输出目录 *** 属性的值 |
行为 |
---|---|
*** 复制,如果更高版本 *** (.sdf文件的默认值) |
数据库文件从项目目录第一次复制到 *** 框 *** 内容将生成项目。您再次生成项目文件的 *** 修改日期 *** 属性每次然后进行比较。如果项目文件夹中的文件较新,它复制到 *** 框 *** 文件夹,替换以前的文件。否则,不会将文件复制。
警告
我们建议不要对.mdb或.mdf文件使用此值。数据库文件可能会发生更改,即使该数据不会更改。文件中标记为较新,如果您打开的连接(例如,展开在 *** 服务器资源管理器 ***的 *** 表 *** 节点)。
|
*** 始终复制 *** (.mdf和.mdb文件的默认值) |
数据库文件从项目内容都会复制到 *** 框 *** 内容您生成应用程序。所做的任何更改将数据文件在运行应用程序的输出文件夹中下次复盖。 |
不复制 |
该系统从不复盖在 *** 框 *** 目录中的文件。您的应用程序创建指向输出目录中数据库文件的动态连接字符串。因此,因此,如果要在输出目录的数据与在项目目录中的数据时,您必须手动将文件复制到输出目录。 |
常见问题与本地数据
下表介绍常见问题可能会遇到,当您使用本地数据文件一起使用。
问题 |
说明 |
---|---|
每次我测试我的应用程序并修改数据后,下次运行此应用程序时我的更改都消失了。 |
*** 复制到输出目录 *** 属性的值为 *** 复制,如果更高版本 *** 或 *** 始终复制 ***。在您生成项目的输出文件夹(修改的数据库,则测试应用程序时)时都会复盖。有关更多信息,请参见如何:管理项目中的本地数据文件。 |
消息显示,称为数据文件锁定。 |
Access (.mdb文件):验证文件不是已在另一个程序,如Access。 SQL Server express (.mdf文件):SQL express锁定数据文件,如果尝试复制,移动或重命名在Visual Studio IDE外部。 |
当多个用户同时,尝试访问同一数据库Access拒绝。 |
Visual Studio利用 用户实例,是SQL Server Express函数来创建SQL Server实例每个用户的。在用户访问文件后,任何后续用户无法连接。此问题可能发生,则,例如,可以在ASP.NET development server和Internet信息服务(IIS)中尝试同时运行Web应用程序,因为IIS通常是运行在不同的帐户。 |
请参见
任务
演练:连接到 SQL Server Express LocalDB 数据库中的数据(Windows 窗体)
演练:连接到 Access 数据库中的数据(Windows 窗体)
如何:向项目添加 SQL Server Compact 数据库