2009-10-16 57 views
9

我正在制作这个微小的实用程序(Windows窗体),它需要将一些数据保存到磁盘。用数据库术语来说,它大概是一张表,不超过大约几千行,每行大小不超过1KB。.NET中的快速嵌入式数据库有哪些选择?

你会用什么?

加入:忘了说 - 如果整个程序只是一个.EXE文件(当然还有数据文件),那将是非常整洁的。因此我更喜欢.NET中构建的东西。

回答

23

SQLite。它很小,有.Net的great wrapper

+0

+1。我不知道.NET的包装器。很酷。 – 2009-10-16 15:06:43

+1

而.NET端口http://code.google.com/p/csharp-sqlite/ – mcintyre321 2009-10-16 15:22:13

+0

正如对SQLite包装的补充警告一样,它支持LINQ。 – 2009-10-16 15:52:43

8

您可以使用SQL Server Compact Edition(随Visual Studio提供)或SQLite

还有很多其他的,但这些是最常见的。

我是SQLite的忠实粉丝,因为它很小,简单而且快捷。它有一个很棒的ADO.NET provider,它支持实体框架。

3

如果你使用的是嵌入式数据库,那么SQL Server Compact Edition可能是你最好的选择,SQLite紧随其后。

如果你正在谈论一张表,这听起来像一个嵌入式数据库可能是矫枉过正,你可以更好地通过一个简单的文本文件。

2

我第二次投票SQLite。除非您需要与中央数据库轻松同步,否则SQL Server CE对于任何嵌入式目的来说都太重了 - 那太棒了。

4

如果你正在谈论一张表,我不明白为什么你觉得你必须使用关系数据库来实现你的目标。那么单个文件呢?

当然,根据您需要存储信息的原因以及数据相关的方式,您可能有理由需要db。但是你应该考虑一下,在这种情况下,数据库是否真的是你需要的。

关系数据库不应该是存储数据的事实标准。在选择RDBMS之前,您应该考虑许多备选方案。

查看mcintyre321的帖子。

+0

有趣的是,人们如何看到“DB”这个词,并立即锁定DBMS的思维。我有没有说我想要一个完整的DBMS?的确,我更关心平面文件解决方案,XML序列化等等。我只是想知道其他人会做什么,为什么或不会选择一些解决方案。 +1 – 2009-10-16 14:21:02

+0

我很想知道什么是最快的平面文件格式和库来查询它。最常见的问题是,在搜索没有后台引擎的平面文件来生成索引时,您没有索引的好处。 – 2009-10-16 15:05:57

+0

这将与嵌入式数据库管理系统有关。平面文件是平坦的,因为它们没有索引。恕我直言。 – 2009-10-16 17:47:50

1

对于小而简单的事情,我可能会去用XML而不使用数据库。如果您抽象CRUD代码,您可以稍后修改代码的数据层部分,以便在数据增长的规模和复杂性时使用数据库。

0

如果它不一定是SQL兼容的数据库,那么我也会看看Db4o。 Db4o是Java和.NET的对象数据库。 .NET版本完全用C#编写。

3

您可以创建一个类的数组,将其标记为[Serializable],并使用内置的serialize/deserialize方法进行持久化。

0

我第二次SQL精简版或放气的作家,以尽量减少大小简单的XML文件的有趣的信息。快速,没有那么脏。

0

试试这个:https://github.com/mdsoftware/mData。没有第三方,包括所有资源,还包括一些像Lisp一样的数据处理和表达式编译器。我试图让一些非常简单但功能性很强的东西。