如何在到.Net Core 3.0应用程序中的Access .mdb文件中使用ODBC连接

问题描述 投票:0回答:1

我有一个带有类库的.Net Standard 2.0项目,在其中我使用System.DataODBC(作为Nuget软件包安装)连接到Access mdb文件。然后,我编写了一个.Net Framework 4.7.2控制台应用程序来测试该库,该库可以按预期工作。然后,我编写了一个.Net Core 3.0控制台应用程序,因为最终将使用该库的应用程序是.Net Core应用程序。但这没有用,我得到这个错误:

错误[IM002] [Microsoft] [ODBC驱动程序管理器]找不到数据源名称,并且未指定默认驱动程序

但是我尝试使用“ x86”而不是“ Any CPU”来编译解决方案-并且可以。然后,我认为它必须与64位32位的ODBC驱动程序有关?

要清除,我尚未使用ODBC admin(odbcad32.exe)配置任何ODBC驱动程序。现在,我可以在Visual Studio中独立运行核心控制台应用程序。

但是当我将Core Console应用程序放置在另一台计算机上(在VM中全新安装Windows 10专业版时,它仍然无法工作。要使其运行,我必须在VM计算机中执行什么操作/安装?

提前感谢

安德斯

.net ms-access odbc core
1个回答
0
投票

如果使用mdb(较旧的旧版JET引擎),则可以在任何计算机上进行连接,因为Windows的每个副本都附带了JET数据库的副本。是的,您将不得不将项目强制为x32(x86),因为JET数据引擎仅在x32版本中可用。

如果使用ACE,则您正在使用较新的ACE数据引擎,如果您使用Access 2007和更高版本的格式,则这是必需的(因此对于accDB文件,您必须使用ACE)。

当然,像任何驱动程序或软件一样,如果要部署到其他计算机,则必须确保已安装ACE。通常,您必须(应该)安装访问连接组件。例如这个:

https://www.microsoft.com/en-us/download/details.aspx?id=54920

请记住,以上有两个版本。一个x64位版本和一个x32位版本。您希望继续将.net项目强制为x32或x64,因为您不能随心所欲。因此,您必须将上述安装作为安装程序的一部分,或者仅提供一个副本,或者让用户下载+安装。

消除上述需求的唯一方法是使用JET,但这对您而言可能不是一种选择,并且您只能使用mdb文件,并且不能将accDB文件与JET一起使用。

© www.soinside.com 2019 - 2024. All rights reserved.