MS Access 的托管驱动程序

Managed driver for MS Access

可以使用 JET 或更新的 ACE 读取 MS Access 文件。这两个都是本机驱动程序,即必须安装它们。可以使用本机驱动程序 (Oracle Client) 或托管 .NET 驱动程序 (ODP.NET) 查询 Oracle 数据库。是否有用于 MS Access 的托管 .NET 驱动程序之类的东西?

有一个名为 ODBC.NET 的托管提供程序,它仅在 SQL 服务器、Oracle 和 Access/JET 上进行了测试。

然而,尽管是“托管”.net 提供程序,它仍然需要安装 Access ODBC 提供程序。 (所以你无法解决这个问题——至少在 Access 的情况下)。因此,在 JET 的情况下,假定 windows 上存在非托管代码驱动程序。

当然,在 windows 中,SQL 服务器和 JET 提供程序都是默认安装的。因此理论上您不必安装任何额外的东西。

因此请记住,windows 包括可以读取“mdb”文件的 JET 提供程序,但不包括需要您安装 ACE 数据库引擎的 accDB 文件。

上面的 .net“托管”驱动程序只能工作,因为 windows 默认包含非托管访问驱动程序。

关于 SQL 服务器,我不是 100% 确定这一点,但它再次表明托管 SQL 驱动程序可以工作,因为它使用内置的非托管驱动程序 windows 默认提供。所以我无法为 SQL 服务器确认这一点,但我可以为 Access/JET.

所以关于 Access/JET 你将使用一些非托管代码,尽管事实上不需要安装任何关于读取 mdb 文件的东西——但对于 accDB 格式文件,你将必须包括ACE 连接组件。

而 ODBC.NET 提供程序虽然托管代码仍然假定您使用默认安装的非托管 JET 驱动程序来处理 mdb 文件,或者在 "accdb" 文件的情况下,则假定您已经安装了 ACE 驱动程序。不管你如何切分,你可能不需要安装任何东西,但在所有情况下,你仍然在使用一些假定存在于你的计算机上的非托管代码——这意味着这样的驱动程序必须与您的 .net 项目的位大小。