c# - Access 数据库引擎的优点和缺点。 SQLite 之后的生活

标签 c# vb6 ms-jet-ace

我问了一个question前一段时间关于哪个本地数据库适合我的情况。我需要从 .NET 代码和 VB6 访问数据库。压倒性的 react 是 SQLite。但是,我决定不使用 SQLite,因为唯一的 OLE DB 提供者会为我的软件的每个部署副本收取版税。它还需要在每台 PC 上运行激活程序。

在评估了其他选项后(SQL Server Compact 版本——几乎没有功能的 OLE DB 提供程序,Firebird——不想为另一个驱动程序付费,等等……),我得出的结论是唯一可行的选择使用由 Microsoft Access(或 Jet 引擎)创建的 .MDB 文件。

我从 90 年代末开始就没有使用过它,所以我有以下问题想问那些有过它经验的人。

  1. 他们是否解决了数据库时不时损坏的问题。
  2. 是通过 ADO.NET OLEDB 提供程序从 C# 访问 MDB,还是有本地解决方案(我似乎找不到)。
  3. 对于 Access 中非常糟糕的 SQL 编辑器,是否有可行的替代方案?

谢谢。

最佳答案

与其“回到”Access,我会坚持使用 SQLite 并使用 System.Data.SQLite 提供程序在 .NET 代码中访问 SQLite 数据。

然后我将创建一个简单的 COM 互操作 .NET 类供 VB6 使用,它包装了任何必需的 SQLite 数据访问功能。最后,只需像 VB6 项目中的标准 COM 对象一样引用和使用它。

我对 Access 的了解可能有点过时并且因糟糕的经历而产生偏见,但在合理范围内我会在求助于 Access 路线之前尝试大多数其他选项。

关于c# - Access 数据库引擎的优点和缺点。 SQLite 之后的生活,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/680399/

相关文章:

c# - 设置 ClientCredentials : getting "Username is not provided" error

c# - 异步添加到 ObservableCollection(或替代方案)

vb6 - 如何在大型 Visual Basic 项目中查找变量或函数的来源

ms-access-2013 - 删除 5 条记录但 RecordsAffected 属性为 0

c# - TPL 数据流 - 随时控制流中的项目

C#如何输出类(结构)中的所有项目

vb6 - 检测在 VB6 输入框中按下取消

mysql - 通过 LAN 连接到 mySQL

database - Jet 数据库 32 位和 64 位及替代品

.net - 在 32/64 上运行 exe 与 ACE-Driver 一起工作