什么是C#桌面应用程序的最佳数据库? (没有网络)

时间:2010-02-17 01:34:55

标签: c# database

我应该使用什么?我需要存储数据,它只需要在本地机器上。我将存储所有字符串变量,并存储在许多列中。

什么是最好的?它甚至会成为一个数据库吗?

9 个答案:

答案 0 :(得分:13)

我会推荐db4o,一个对象数据库引擎。它非常简单,客户端不需要服务器或安装。另一种选择是SQLite。您可以获得.NET提供程序here

修改

请参阅db4o教程here

答案 1 :(得分:6)

SQL Server Compact 3.5 SP1不需要安装(您只需要提供.dll,但如果允许则检查EULA)并且可以直接使用。

答案 2 :(得分:5)

我建议使用sqlite,它是一个非常快速的文件,可嵌入,功能丰富的数据库。我有一个lightweight ORM with C# bindings抽象并简化了对它的访问。这是live web-service demo using sqlite

哦,是的db4o也是一个不错的选择,我也有C# database bindings支持C#自动属性(默认的db4o提供程序没有)和其他常见的数据访问方案。

答案 3 :(得分:3)

如果你正在寻找一个RDBMS或MongoDB之类的东西,你应该看看SQLite,如果你正在存储对象或类似物。

答案 4 :(得分:2)

为什么不是SQL Server Express?它甚至是免费的。

答案 5 :(得分:2)

我强烈建议您查看序列化框架。它甚至不接近数据库的性能,但是,如果你不是在谈论大量数据,它的开销会减少大约100%。将对象序列化到.net中的文件是孩子的游戏:

XmlSerializer serializer = new XmlSerializer(typeof(myObjectType));

using(FileStream stream = new FileStream("file", FileMode.Create, FileAccess.Write)
{
   serializer.Serialize(stream, myObject);        
}

就是这样!

回读恰恰相反。 LINQ提供了更多选择。同样,就性能而言,这甚至都不接近数据库,但我已经看到许多实现,其中数据库对于存储的数据量极端过度。显然,如果您有明确的扩展需求等,那么您需要为此做好计划。正确问题的正确工具以及所有这些。

答案 6 :(得分:0)

如果您只是想以相当简单的结构存储少量数据,并且不会进行任何复杂的查询,那么请考虑使用XML文件。您不需要任何其他软件,并且可以使用LINQ to XML轻松使用它。

答案 7 :(得分:0)

XML可以代替您的要求!

答案 8 :(得分:0)

如果你想要极快的速度,请查看memcache。但是它们不会写入硬盘驱动器,因此如果要将它们存储在会话中,您可能仍需要其他提到的数据库。 在我的项目中,我们使用mongodb缓冲数据并使用memcache缓冲mongo。因此,首先从memcache中检索数据,如果没有找到,请尝试mongo。如果仍未找到,我们将获得新数据。

对于Windows和.net,请查看here