无需额外安装的数据库

Posted

技术标签:

【中文标题】无需额外安装的数据库【英文标题】:Database that requires no extra installation 【发布时间】:2011-05-29 21:00:43 【问题描述】:

我开发了 C# 应用程序,用于存储和检索 SQL 数据库中的数据。 但是当我的客户必须部署他需要安装 sql server express 2008 的应用程序时,这是它的要求。现在他希望安装该软件而无需额外安装附加组件。所以我除了 dot net framework 应该没有任何东西额外安装。

我见过一些像SQL compact,SQL lite ,SQL CE and blackfishSQL 这样的数据库,但我真的不知道它们是否需要额外安装,以及我必须做些什么才能根据所选数据库更改我的整个代码 我看了this 请帮帮我

【问题讨论】:

【参考方案1】:

我建议使用SQLite 或Server Compact (SQL CE)。它们不需要额外安装。

另一种选择是在安装项目中包含 SQL Server Express,以便在需要时自动安装。

SQLite 以快速和健壮着称。 但是,如果您喜欢 Microsoft 产品并且您已经在 SQL Express 中完成了所有工作,那么从开发工具支持的角度来看,SQL CE 可能是更好的选择。

【讨论】:

【参考方案2】:

到目前为止,SQLite 是此类场景中通常考虑的最流行的选项。它不需要任何额外的安装。数据库接口本身在 dll 中可用,您与数据库交互所需的只是接口 dll。至于移植您的应用程序所需的努力程度,这将取决于您使用 Sql Server 特定 SQL 构造的程度。您的代码越接近 ANSI SQL,移植就越容易到任何其他符合 ANSI SQL 的数据库,如 SQLite。通常,如果您在应用程序中使用了 ORM 技术,任务会变得容易得多,因为它们在您的客户端代码和数据库之间提供了额外的抽象层

【讨论】:

【参考方案3】:

我确定原发帖人不再需要这些信息 - 但为了其他人在谷歌上搜索相同的问题 - 让我添加一些我自己的信息。

我最近才将 C# 程序从使用 SQL Express 转换为 SQL Compact - 与转换为 SQLite 项目相比,它相对容易。代码非常简单。在 SQL Express 中你可能使用 SqlCommand 的地方,它就变成了 SqlCeCommand。从一种转换到另一种非常容易。

【讨论】:

以上是关于无需额外安装的数据库的主要内容,如果未能解决你的问题,请参考以下文章

在 bash 中将 CSV 输出为单个字符串,无需额外安装 [重复]

Django Model OneToOneField 无需创建额外的 _id 数据库列

具有不匹配模式的 Spark 合并数据帧,无需额外的磁盘 IO

用于 C/C++/java 的平台无关代码,无需额外的包

颜水成团队开源VOLO:无需额外数据,首次在ImageNet上达到87.1%的精度

将字节流转换为字节数组,无需额外空间