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

标签 c# sql mdf

我正在使用 Visual Studio 2005。我创建了一个项目,而不是 Web 项目,只是 Windows 应用程序。

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

我做了以下步骤:

  1. 右键单击项目。
  2. 选择添加现有项目
  3. 浏览 *.mdf 文件。
  4. 出现数据源配置向导并显示此消息

    从数据库中检索信息时发生错误: 由于为用户实例启动进程时出现故障,无法生成 SQL Server 的用户实例。连接将关闭。

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

最佳答案

首先,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 会使您陷入痛苦的世界。您最终可能会分发不一致的 MDF,需要 LDF 完成恢复并进入一致状态。

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

关于c# - 将 *.mdf 文件添加到 C# 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5821864/

相关文章:

sql-server - DataGrip 打开 Microsoft SQL Server 数据库文件

java - Hibernate:SQL Server .MDF 文件的 connection.url

c# - Dynamics AX 2009 业务连接器登录

c# - SqlBulkCopy 在事务内部插入时阻止任何其他对表的写入

mysql - 在 MySQL 中显示外键数据

mysql - SQL-查询查找具有来自另一个表的最大链接列的特定行的名称

database - SQL Server 2005 在哪里保存 .mdf 文件?

c# - 如何在不提及派生类名称的情况下返回接口(interface)类型?

c# - 解析日期时间但 dt 正在将日期从第 8 天更改为第 7 天?

c# - 如何根据条件在 Wpf DataGrid 中的选定项目后获取项目?