将 Microsoft Access 2007 数据库与 Visual C# 2010 配合使用
本文关键字:2010 Visual Access Microsoft 2007 数据库 | 更新日期: 2023-09-27 18:18:22
我已经完成了将员工数据存储在 Access 数据库中的 C# 应用程序的设计。当我在我的计算机上安装 Office 2007 时,该程序可以完美Microsoft,但如果卸载 Office 2007,则会导致错误。现在,我想知道是否有一种方法可以使我的程序连接到 Access 数据库,而无需安装整个 Microsoft office 2007。
using System.Data.OleDb;
如果连接字符串使用 Microsoft.ACE.OleDb.12.0
提供程序,则需要在客户端上安装 Microsoft Access 数据库引擎。
在提供的链接中,您可以找到此提供程序的两个版本的安装。
一个用于 32 位,一个用于 64 位。
正确使用的方法取决于应用中定义的目标 CPU 和操作系统位数。当然,在 32 位操作系统上,您无法安装 64 位提供程序,而反之亦然。
如果你的应用是针对 x86 编译为目标 CPU,则需要 32 位版本,并且也可以在 64 位系统上安装应用。如果你的应用是针对 x64 目标 CPU 编译的,则需要 64 位版本,并且只能在 64 位系统上运行。如果你的应用是为Any CPU
编译的,则应在安装时根据操作系统的位数决定要安装哪个版本的ACE.OleDb.12.0
。
这还不足以让您头疼,那么如果客户端计算机上已经安装了Office,那么事情就会开始看起来非常糟糕。
Office 会自动安装与其版本(32 位或 64 位(兼容的提供程序,并且您不能将这些库的不同版本与另一个库并排安装。
那么,您最好的选择是什么?
- 编写应用以供
x86 Target CPU
,并提供专用设置安装了 Office 64 位的系统,或要求客户更改 Office 版本。(我在开玩笑( - 编写您的应用程序以供
AnyCPU Target
,在安装时检查操作系统位数并选择适当的引擎版本。在 64 位系统上希望您的客户没有安装了 32 位版本的 Office。 - 使用
Access 2003 format (mdb)
并针对 x86 目标 CPU 进行编译。这方法需要Microsoft.Jet.OleDb.4.0
提供程序已在任何目标客户端上可用。它不需要安装任何东西,它应该在任何系统上完美运行。 - 切换到
SQLite
或Sql Server Compact Edition
或Sql Server LocalDB
。 这些选项需要对应用程序、数据库架构迁移以及可能的代码更改。不过,敬业需要库来分发
就个人而言,对于数据量有限(小于 1gb(且与其他 Office 应用程序集成的小型单用户应用程序,我使用 Access 2003 MDB 解决方案。