将* .mdf文件添加到C#项目

问题描述:

我正在使用Visual Studio 2005.我创建的项目,而不是Web项目,只是Windows应用程序。将* .mdf文件添加到C#项目

我记得Access数据库文件可以添加到项目中。我不需要连接到服务器,可以检索数据。我想用SQL数据库文件做同样的事情。

我做了如下的步骤:在项目

  1. 单击鼠标右键。
  2. 选择添加现有项目
  3. 浏览* .mdf文件。
  4. DataSource配置向导出现并显示此信息,而从数据库中检索的信息发生

    出错: 无法生成SQL Server的一个用户例如由于一个故障INT开始处理为用户实例。连接将被关闭。

我需要帮助将mdf文件添加到我的项目中。

+1

将它附加到SQL Server实例并从那里使用它。 – 2011-04-28 16:26:38

+1

@marc_s说什么。您不能简单地从没有SQL Server的MDF文件读取数据。 – 2011-04-28 16:32:38

要下手,和MDF文件只能通过SQL Server实例读取。如果部署MDF,则应用程序必须在安装过程中连接到由最终用户提供的SQL Server,或者必须部署自己的实例,而在后面的情况下则为SQL Server Express Edition实例。请参阅How to: Install SQL Server Express。使用Visual Studio 2008,您可以为自己的应用程序设置MSI添加先决条件,请参阅"Installing" the SQL Server 2008 Express ClickOnce Bootstrapper for Visual Studio 2008 SP1

的第二个问题是,尽管广信念相反的,单独分配MDF没有LDF可以登陆你进入痛苦的世界。您最终可能会分发需要LDF的不一致MDF以完成恢复并进入一致状态。

但更严重的问题是,你的计划来部署数据库部署二进制文件(MDF中),而不是脚本。这注定会失败。只要您计划发布1.1版的应用程序,您将面临如何用新的MDF替换用户MDF(现在包含用户添加的数据)的非平凡问题。这就是为什么总是部署upgrade scripts要好得多,并忘记项目中的MDF。

+0

.sdf文件怎么样?它会有版本问题吗? (我想问一个基于离线桌面的pos软件应用程序。) – bonCodigo 2014-10-10 07:14:07

+0

@bonCodigo:不要在评论中提出新问题。问一个新问题。 – 2014-10-10 07:36:45

+0

这是一个新的规则吗?我在问这个帖子和你的回答的背景有关的问题。 – bonCodigo 2014-10-10 07:41:31

An .MDF是一个sql服务器数据库,而不是MS Access。 MS访问是.MDB。您无法自行读取.MDF。它也需要一个日志文件(.LDF)。如果将它附加到本地实例,它将为您创建一个新实例。然后您可以连接到该数据库。

您可以在应用程序中读取Access文件(* .mdb),而无需任何其他要求,因为Access使用的核心Jet引擎包含在内置的Windows —中。Sql Server不作为Windows,所以你不能在你的应用中使用* .mdf文件,除非已经安装了Sql Server并且你有适当的权限。

它可以任意分配的SQL Server Express Edition或SQL Server精简版(推荐)与您的应用程序。另一种选择是SqlLite,它具有完全托管的数据库引擎。

为了解决deployement问题(你的.mdf文件和代码的更新版本),你可以在你的应用程序的实用程序可以创建要在应用程序中使用的每个表.xls文件(备份数据库)。现在,您可以轻松地在SQL Server中导入这些.xls文件并创建新版本。mdf文件并在最新的代码中附加相同的文件。现在,您的应用程序的新版本已准备好部署..!