哪个本地数据库适合我的情况?

时间:2009-01-27 05:54:51

标签: c# database vb6 embedded-database

我将构建一组应用程序。其中一个应用程序是无人值守的应用程序(用VB6编写),它将从各种源接收的数据写入本地数据库。所有其他应用程序(将在VS 2008 / c#3.0中编写)将主要用于报告原因来读取此数据。

我不想要SQL Server / MySql / Sybase甚至是它的快速版本,因为分发它是一个问题(例如需要单独安装等等)。我正在寻找一个本地数据库,其中包含VB6的驱动程序(所以可能是OLEDB,或ODBC,如果我必须解决它)和ADO.NET。如果数据库支持ORM,如NHibernate或至少1对1的映射器,如Subsonic,这也不错,但这不是一个交易破坏者。但我的主要要求是数据库应该非常可靠,这样我就不必浪费时间摆弄它,恢复丢失的数据等......

我从当天回来就有MS Access的经验,没有太多好的回忆(也不是很糟糕)。我听说过SQLite,SQL Server Compact Edition,VistaDB等......但对它们没有经验,我不知道有谁实际使用过它。

最符合我情况的是什么?

11 个答案:

答案 0 :(得分:9)

SQLite可能符合要求。确保你check out all the available wrappers

答案 1 :(得分:8)

您是否想过FireBird SQL

答案 2 :(得分:3)

除非数据库,否则我建议使用SQLite。我有使用它的经验,而且我和你一样。 System.Data.Sqlite项目非常好,它们支持ADO.net 2.0和所有这些功能。他们目前正致力于在包装器上获得完整的Linq支持。我推荐它的原因如下。

  1. 低占用空间 - 引擎仅为700 KB或更低。
  2. 可扩展 - 它可以处理相当大的数据库。 GB的顺序。任何大于此的东西都可能需要一个基于服务器的数据库引擎,而且RAM很多。
  3. 耐用 - 他们的测试套件覆盖了大部分代码,并且已被证明适用于许多商业应用,例如iPhone
  4. 快 - 这台发动机的开销非常小。
  5. 当前 - .NET项目是最新的,微软正在推出最新的.NET 3.5技术。
  6. Portable - 可以在嵌入式系统或桌面上使用它。
  7. 在此处检查System.Data.Sqlite项目http://sqlite.phxsoftware.com/

答案 3 :(得分:3)

查看Advantage Database Server。它具有静默安装选项,占地面积小,易于维护。它有很多客户端支持:ODBC,OLE DB,.net数据提供程序,jdbc,dbi,php等。免费本地引擎(只是一个与您的应用程序在进程中运行的DLL),廉价的客户端/服务器,SQL和直接导航表访问。

The DevZone

答案 4 :(得分:2)

SQL Server Compact Edition是进程内的,所以没有什么是单独安装的。

答案 5 :(得分:1)

我对SQLite也没有很多经验,但我已经使用了一点。它用于LOT种情况和应用程序。确实有100多个小数据库,但至少我推荐使用SQLite作为起点。

答案 6 :(得分:1)

我可以担保VistaDB。您可能想要查看的另一个数据库是Blackfish

答案 7 :(得分:1)

可以将SQL Server用作直接连接到数据库文件的本地数据库。但是这需要你安装sql server express。

使用成员资格提供程序查看ASP.Net的默认设置。它将为网站创建一个基于本地文件的数据库。

使用这种方法你可能没问题,因为你可以在开发时使用所有熟悉的工具。

编辑:
我刚注意到嵌入式标签。如果要在Windows CE设备上运行该应用程序,可以选择SQL Server Compact。它不支持存储过程AFAIK,但它确实支持SQL Server的大多数其他功能。

答案 8 :(得分:1)

SQLite的影响非常小,编写得非常好。它非常适合本地客户端数据库

答案 9 :(得分:1)

其他人在SQLite.net ADO.net提供程序中提到的SQLite,可以轻松访问.NET。

答案 10 :(得分:1)

我已经使用过ScimoreDB,并为我的应用程序编写了log4net的appender。结果好坏参半,并且花了很多时间试图通过文档来根据需要开展工作。

我正在向SqlLite转移,并且有一个关于使用SubSonic和SqlLite的链接。