3

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

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

我从前就有使用 MS Access 的经验,并且没有太多美好的回忆(也不是很糟糕)。我听说过 SQLite、SQL Server Compact Edition、VistaDB 等……但对它们的经验为零,我不知道有谁实际使用过它。

有什么最适合我的情况?

4

11 回答 11

9

SQLite可能正好符合要求。确保你也检查了所有可用的包装器

于 2009-01-27T05:56:23.647 回答
8

你有没有想过FireBird SQL

于 2009-01-27T06:48:09.733 回答
3

除非数据库,否则我会推荐 SQLite。我有使用它的经验,我和你一样。System.Data.Sqlite 项目非常好,它们支持 ADO.net 2.0 和所有这些花哨的东西。他们目前也在努力获得对包装器的完整 Linq 支持。我推荐它的原因如下。

  1. 低占用空间 - 引擎只有 700 KB 或更少。
  2. 可扩展 - 它可以处理相当大的数据库。GB 的顺序。任何比这更大的东西都可能需要一个基于服务器的数据库引擎和大量的 RAM。
  3. 耐用 - 他们的测试套件覆盖了大部分代码,并已被证明可以在许多商业应用程序上运行,例如 iPhone
  4. 快速 - 这个引擎的开销很小。
  5. 当前 - .NET 项目与 Microsoft 提出的最新 .NET 3.5 技术保持同步。
  6. 便携——可以在嵌入式系统或桌面上使用。

在此处检查 System.Data.Sqlite 项目http://sqlite.phxsoftware.com/

于 2009-01-27T07:45:29.167 回答
3

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

开发区

于 2009-01-27T21:18:38.900 回答
2

SQL Server Compact Edition是进程内的,因此无需单独安装。

于 2009-03-19T17:47:56.487 回答
1

我也没有太多使用SQLite的经验,但我用过一点。它用于很多情况和应用程序。那里确实有 100 多个小数据库,但我建议至少将 SQLite 作为起点。

于 2009-01-27T05:58:58.493 回答
1

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

于 2009-01-27T07:09:54.340 回答
1

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

查看带有 Membership Provider 的 ASP.Net 的默认设置。它将为网站创建一个基于本地文件的数据库。

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

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

于 2009-01-27T07:24:08.383 回答
1

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

于 2009-01-27T08:55:41.630 回答
1

正如其他人提到的 SQLite 与SQLite.net ADO.net提供程序一样,为了方便 .NET 访问它。

于 2009-01-27T12:44:56.753 回答
1

我使用了 ScimoreDB,并为我的应用程序编写了 log4net 的 appender。结果好坏参半,花了很多时间试图通过文档来让事情按照需要工作。

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

于 2009-01-27T12:45:45.737 回答