【问题标题】:Database to use when creating an installer for your c# application为您的 C# 应用程序创建安装程序时要使用的数据库
【发布时间】:2026-02-13 22:40:01
【问题描述】:

我正在创建一个需要使用数据库的 c# 应用程序,并且我还计划为我的应用程序创建一个安装程序。我只想问在我的应用程序中最好使用哪个数据库,以及如何在通过安装程序文件安装我的应用程序时将它安装在用户机器上。 我曾想过使用 MYSQL 数据库,但为此你需要安装 MYSQL。

更新

我希望每个用户在安装应用程序时都有自己的数据库实例

【问题讨论】:

  • SQL CE 会很简单。
  • @BartTeunissen......你不需要在用户系统上安装它吗
  • 如果你构建一个版本,一个 Sql CE 的 dll 就足够了。您可以将这些 dll 设置为在您的设置文件中的安装程序中构建。

标签: c# mysql database installation


【解决方案1】:

您不必为您的应用程序提供完整的数据库服务器;只有您的应用程序用于远程连接到实际数据库服务器的可再发行运行时。对于 MySQL,您只需要程序集。

我编写的应用程序严重依赖 SQL Server。为了简化评估和初始部署,安装程序将安装 SQL Server Express(作为应用程序特定实例安装)。如果您的应用程序旨在用于集中式数据库,这是我推荐的一种方法。

理解的关键是,尤其是对于商业应用程序,您安装的数据库引擎可能必须与相应数据库引擎的现有版本共存。这就是为 SQL Server Express 创建应用程序特定实例的原因。

嵌入的替代方案是:

  1. SQLite.net
  2. SQL Server Compact Editiondeployment process 定义明确。
  3. VistaDB

嵌入式数据库在部署为服务器应用程序的一部分时会遇到一些挑战。多年来,Microsoft 一直拒绝让SQL Server Compact Edition 用于 ASP.NET 应用程序。如果数据库是每个用户、每个设备的,那么嵌入式数据库可能是完美的。

另外请注意,MySQL 在作为商业软件的一部分提供时具有license restrictions(也就是您充当 OEM、ISV 或 VAR)。

【讨论】:

  • 我不打算创建一个集中式数据库.......我只是希望当用户安装我的应用程序时,会在他的机器上创建一个数据库并在那里创建所有表
  • 每个使用工作站的用户会使用自己的数据库,还是共享数据库?
  • 是的,每个安装此应用程序的用户都将拥有自己的数据库实例
  • 那么我建议寻找一个在进程中运行的嵌入式数据库。有很多可供选择。我喜欢 SQLite 或 SQL Server 精简版。有一些限制,但我还没有真正遇到每个用户数据库的问题。安装轻而易举;只需确保可再发行的 dll 位于应用程序的 bin 文件夹中即可。
【解决方案2】:

看看SQL Server Express Edition

它只是一个可以复制的文件和一个允许访问它的类库。完成安装后,您可以删除文件(或在需要卸载产品时保留它们)。

【讨论】:

  • 但是我读到 SQL CE 有很多限制,比如数据库大小,而且当你在跨平台上运行它时,你必须重新索引你的数据库。
  • 这里有一个链接...*.com/questions/583278/…
  • 取决于安装数据库的大小。对于 SQL Server compact 4.0,最大数据库大小为 4 GB。
【解决方案3】:

也许你是个新鲜人。

MYSQL 没问题,但是你正在创建一个 C# 应用程序,我强烈建议你使用 mssql 因为C#与mssql关系密切,开发更方便。

【讨论】:

  • 我的问题是,在某些机器上安装我的应用程序时,我是否还必须安装数据库,如果是,那么如何....请指导
【解决方案4】:

我的建议是使用 SQL Azure。

但前提是:

  • 您不需要太多存储空间 (
  • 您不会在此处保存敏感数据。
  • 您的用户有互联网连接。

这是一个基于云的 Sql Server 数据库。而且连接非常简单,基本上你通过连接字符串连接到任何其他数据库。

www.windowsazure.com

【讨论】:

  • SQL Azure 为每个用户每个应用程序数据库引擎增加了不必要的开销和成本。