Windows有一些内置的数据库引擎吗?

时间:2014-08-11 07:07:47

标签: c# windows

到目前为止,在我的应用程序中,我通过序列化存储了所有数据,所以我从来没有真正需要其他任何东西。但现在我正在使用更复杂的数据,我需要的不仅仅是一个简单的文件来存储它们。我可以使用Windows中的一些内置存储引擎,这将允许我使用SQL查询来提取和编辑数据吗? (因为我怀疑用户是否愿意为我的应用程序安装和配置独立的MySQL服务器而且我真的不想使用第三方解决方案) 如果有,我怎样才能访问这样的数据库引擎?

6 个答案:

答案 0 :(得分:4)

是的,Windows确实有一个嵌入式数据库引擎,自Windows 2000以来一直存在。它被称为Esent

有一个名为Managed Esent的项目,用于向管理代码公开Esent的功能。它有一个NuGet package

我不知道它是否符合您通过SQL查询更新的确切需求,但它确实具有许多功能:

  • 具有保存点,延迟提交和强大崩溃恢复的ACID事务。
  • 快照隔离。
  • 高度并发的数据库访问。
  • 灵活的元数据(可能有数万列,表和索引)。
  • 对整数,浮点,ASCII,Unicode和二进制列的索引支持。

答案 1 :(得分:2)

SQLite是一个软件库,它实现了一个独立的,无服务器,零配置的事务SQL数据库引擎。

http://www.sqlite.org

SQLite可以在不要求App用户安装SQLExpress或任何其他数据库引擎的情况下工作,使其成为桌面应用程序的理想选择。

答案 2 :(得分:2)

将SQLite用作独立数据库并集成部分应用程序。 主要好处:

  • 数据存储在单个文件中,易于拉/编辑
  • 作为dll的应用程序的一部分,没有单独的 需要安装/配置

答案 3 :(得分:0)

我在Microsoft网站database info上找到了有关数据库的一些信息 有一个嵌入式数据库引擎。 Esent

答案 4 :(得分:-1)

不,没有可用的内置数据库。 但是有很好的选择,比如mqsql express服务器或SQLITE数据库,它基本上是一个单独的数据库文件,可以通过项目中的库访问。因此,如果您使用SQLITE,则无需安装任何内容。

答案 5 :(得分:-2)

如果它是一小组用户特定数据,则在Windows注册表中存储是一个不错的选择。