& # 39; Microsoft.ACE.OLEDB.12.0& # 39;提供程序未在本地机器上注册

我试图从一个按钮点击事件的Excel文件中获取数据。我的连接字符串是:

 string connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\source\\SiteCore65\\Individual-Data.xls;Extended Properties=Excel 8.0;";

当我点击按钮,我得到以下错误:

'Microsoft.ACE.OLEDB.12.0'提供程序未在本地计算机上注册。

我不知道该怎么补救。我的操作系统是Windows 7。

1594018 次浏览

嗯,你需要安装它。你正在寻找:

  • # EYZ0。

在Visual Studio 2010中,当我在配置管理器对话框中将我的构建从“x86”更改为“任何CPU”时,我得到了这个错误/异常。我所理解的这个OLEDB数据库驱动程序只适用于x86,不兼容64位。将构建配置更改回x86为我解决了这个问题。

64位版本的“Microsoft Access Database Engine 2010 Redistributable”允许您使用“Microsoft. ace . oledb .12.0”提供程序:
# EYZ0 < / p >

如果您使用已接受答案的下载,您将需要为x86构建,正如@backtestbroker.com所指出的那样。

如果您正在使用64位,但即使在安装AccessDatabaseEngine之后仍然有问题,请参阅这篇文章,它为我解决了问题。

例如,你需要安装< >强这< / >强AccessDatabaseEngine

//读取。xls文件

string strConnection = "";<br/>


string FileName = Server.MapPath("Student.xls");


strConnection = @"Provider=Microsoft.JET.OLEDB.4.0;Data Source=" + FileName + ";Extended Properties='Excel 8.0; HDR=Yes;IMEX=1;'";<br/>


try
{
OleDbConnection conn1 = new OleDbConnection(strConnection);
conn1.Open();
DataTable dt = new DataTable();
dt = conn1.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new Object[] { null, null, null, "TABLE" });


Object sheetName = dt.Rows[0]["TABLE_NAME"];
dt.Clear();
dt.Columns.Clear();
OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [" + sheetName.ToString() + "]", conn1);
da.TableMappings.Add("Table", "0");
da.Fill(dt);


for (int i = 0; i < dt.Rows.Count; i++)
{
string ID = dt.Rows[i][0].ToString();
string Name = dt.Rows[i][1].ToString();
string City = dt.Rows[i][2].ToString();
string Marks = dt.Rows[i][3].ToString();
}
conn1.Close();
}
catch
{
throw;
}
//To Read xlsx file use following code
string strConnection = "";  <br/>
string FileName = Server.MapPath("Student.xlsx"); <br/>
strConnection = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FileName + ";Extended Properties='Excel 12.0 Xml;HDR={1};IMEX=1;'";<br/>


try
{
OleDbConnection conn1 = new OleDbConnection(strConnection);
conn1.Open();


DataTable dt = new DataTable();
dt = conn1.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new Object[] { null, null, null, "TABLE" });


Object sheetName = dt.Rows[0]["TABLE_NAME"];
dt.Clear();
dt.Columns.Clear();
OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [" + sheetName.ToString() + "]", conn1);
da.TableMappings.Add("Table", "0");
da.Fill(dt);
//int idx=0;
//int j=0;
for (int i = 0; i < dt.Rows.Count; i++)
{
string ID = dt.Rows[i][0].ToString();
string Name = dt.Rows[i][1].ToString();
string City = dt.Rows[i][2].ToString();
string Marks = dt.Rows[i][3].ToString();
}


conn1.Close();
}
catch
{
throw;
}

//现在从“http://www.microsoft.com/en-us/download/confirmation.aspx?id=23734”链接安装AccessDatabaseEngine.exe

100%可以正常工作

如果安装的AccessDatabaseEngine仍然不起作用,下面是解决方案:

您需要将活动解决方案平台从“任何CPU”更改为“x86”。

OLEDB Provider is Not Registered on the Local Machine . .

从CodeProject.com

献给那些仍受此影响的人们。

我一直得到错误…

OLEDB error "The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine."

...正如OP Shailesh Sahu所描述的那样。

我有64位的Windows 7。

我的问题是在PowerShell脚本中,但使用了一个连接字符串,类似于OP的帖子,所以希望我的发现可以应用于c#, PowerShell和任何其他依赖于“Microsoft.ACE。OLEDB”司机。

我遵循了微软论坛上的说明:http://goo.gl/h73RmI

我首先尝试安装64位版本,然后从此页安装AccessDatabaseEngine.exe的32位版本 # EYZ0 < / p >

但还是不高兴。

然后我在PowerShell中运行下面的代码(来自SQL Panda的站点http://goo.gl/A3Hu96)

(New-Object system.data.oledb.oledbenumerator).GetElements() | select SOURCES_NAME, SOURCES_DESCRIPTION

...这给了我这个结果(为了简洁起见,我已经删除了其他数据源)…

SOURCES_NAME              SOURCES_DESCRIPTION
------------              -------------------
Microsoft.ACE.OLEDB.15.0  Microsoft Office 15.0 Access Database Engine OLE DB Provider

如你所见,我有Microsoft.ACE.OLEDB.15.0(15)而不是Microsoft.ACE.OLEDB.12.0 (12)

所以,我修改我的连接字符串为15,它工作。

因此,一个快速的PowerShell代码片段演示如何对版本进行软编码……

$AceVersion = ((New-Object System.Data.OleDb.OleDbEnumerator).GetElements() | Where-Object { $_.SOURCES_NAME -like "Microsoft.ACE.OLEDB*" } | Sort-Object SOURCES_NAME -Descending | Select-Object -First 1 SOURCES_NAME).SOURCES_NAME


$connString = "Provider=$AceVersion;Data Source=`"$filepath`";Extended Properties=`"Excel 12.0 Xml;HDR=NO`";"

如果有多个ACE版本,则修改为选择最新的ACE版本

希望任何发现这个问题的人现在都可以检查安装的OLEDB版本并使用适当的版本号。

syp_dino,

我的解决方案,如你所建议的"Microsoft.ACE.OLEDB.12.0'提供程序未在本地计算机上注册"错误是将活动解决方案平台从“任何CPU”改为“x86”。

当我执行这些步骤,重新构建解决方案,获取EXE并将其放在网络上时,在Windows 7 64位机器上一切都很顺利。

我按照别人的指示去做;安装这个补丁,安装那个补丁以及Microsoft Access数据库引擎2010。

我的问题是,我使用相同的库(linq2sql)在我的机器上的2个站点;1行,1不行。

最终,我发现我必须在我的非工作站点的apppool的高级设置中“启用32位应用程序”。

现在一切都好了。

当我们阅读Excel文件时,我也有类似的问题。

问题的历史:

由于内存需求,我们最近将应用程序从32位迁移到64位。为此,我们将windows 7从32位迁移到64位。但是我们仍然在我们的机器上安装了32位办公软件。

因为,我们在导入Excel数据到应用程序时遇到了这个问题。

解决方案,

我下载了64位版本的http://www.microsoft.com/en-us/download/details.aspx?id=13255,并将参数安装为:

AccessDatabaseEngine_x64.exe /被动

没有任何代码更改,我的问题得到解决。

注意:

在64位操作系统和64位办公室上,我的功能在没有这个修复的情况下工作得很好。只有当我们的应用程序是在64位操作系统上运行的64位操作系统上安装了32位办公软件时,才需要这个修复。

也可以试试这些步骤

SQL Server中, 1.打开一个数据库 2.在“服务器对象”选项中进行Clic 3.“链接服务器”中的Clic 4.Clic“提供者” 5.'Microsoft.ACE.OLEDB.12.0'中的Clic右 6.取消所有选项并关闭

这取决于你已经安装的办公室,如果你有x64位办公室,那么你必须将应用程序编译为x64才能允许它运行,所以如果你想让它在x36上运行,那么你必须安装office x86才能接受,我尝试了上面所有的解决方案,但都没有工作,直到我意识到我有office x64bit,所以我把应用程序编译为x64并工作

1)。使用ConnectionStrings.com验证连接字符串。

2)。确保安装了正确的数据库引擎。这是帮助我的两个数据库引擎。

Microsoft Access Database Engine 2010 Redistributable

2007 Office System Driver: Data Connectivity Components

3)。可能有一个问题,你的构建目标平台是“任何CPU”,它可能需要是“X86”(属性,构建,平台目标)。

这取决于应用程序(32/64位)使用你可以安装的连接

简介:

  • 2007-2016年的所有办公室都包含提供商“Microsoft.ACE.Oledb.12.0”
  • 根据您的应用程序架构选择适当的运行时引擎(32/64)6
  • 使用powershell命令来自32位和64位shell检查您的提供商:

    (New-Object system.data.oledb.oledbenumerator).GetElements() | select SOURCES_NAME, SOURCES_DESCRIPTION
    
  • and you will see which provider your system can use

the long story: the strings can be found with http://live.sysinternals.com/strings.exe

eg. on a 64bit System with 32bit drivers installed

strings.exe -u -n 10 "c:\Program Files (x86)\Common Files\microsoft shared\OFFICE12\MSO.DLL" | findstr "ACE.O"
strings.exe -u -n 10 "c:\Program Files (x86)\Common Files\microsoft shared\OFFICE14\MSO.DLL" | findstr "ACE.O"
strings.exe -u -n 10 "c:\Program Files (x86)\Common Files\microsoft shared\OFFICE15\MSO.DLL" | findstr "ACE.O"

即使在即将到来的2016年办公室

c:\Program Files\Microsoft Office\root\VFS\ProgramFilesCommonX64\Microsoft Shared\OFFICE16\MSO.DLL
c:\Program Files\Microsoft Office\root\VFS\ProgramFilesCommonX86\Microsoft Shared\OFFICE16\MSO.DLL

你会找到弦的

  • Microsoft.ACE.OLEDB

  • < >强Microsoft.ACE.Oledb.12.0 < / >强

Office 2013自带csi.dll

c:\Program Files (x86)\Common Files\microsoft shared\OFFICE15\Csi.dll
c:\Program Files\Common Files\Microsoft Shared\OFFICE15\Csi.dll

包含“Microsoft.ACE.OLEDB.15.0

和Office 2016

c:\Program Files\Microsoft Office\root\VFS\ProgramFilesCommonX64\Microsoft Shared\OFFICE16\Csi.dll
c:\Program Files\Microsoft Office\root\VFS\ProgramFilesCommonX86\Microsoft Shared\OFFICE16\Csi.dll

哪个有“Microsoft.ACE.OLEDB.16.0”版本

记住在web应用程序的服务器上安装AccessDatabaseEngine

我安装了MS驱动程序,它仍然不能为我工作。然后我发现这篇博文解决了这个问题。阅读它,否则使用这两张图片(链接自那篇文章)作为TLDR摘要:

enter image description here

enter image description here

首先需要检查的是应用程序的构建配置。

  • 如果你有在x86平台下构建项目,那么为了 解决您的问题,您应该安装以下包在您的 机:< / p >

      为了使用'Microsoft.ACE.OLEDB.12.0'提供程序,您必须 安装Microsoft Access数据库引擎2010可重分发 首先,此安装可在以下位置获得: # EYZ0。< / p >

      安装完成后,尝试运行您的应用程序,如果这 解决问题很好,如果没有,继续步骤2。

      接下来的步骤是一个无法解释的变通方法,它适用于Office 2010,即使它是Office 2007的数据连接组件。我不太确定为什么会这样,但它确实如此,而且几乎在所有情况下都被证明是有效的。你需要安装“2007 Office System Driver: Data Connectivity Components”,这个安装可以在: # EYZ0。< / p >

      在此安装完成后,尝试运行您的应用程序,这应该可以解决问题 李< / ol > < / >

    1. 如果您正在尝试运行在x64或AnyCPU下构建的应用程序 平台,我建议首先验证它按预期运行 在x86平台下。如果它不在这个范围内运行 X86平台,执行第一部分中的步骤并验证

      我确实读到MS Access驱动程序包括OLEDB数据库 驱动程序只能在x86平台下工作,在 x64或AnyCPU平台。但这似乎不是真的。我 在构建x86时验证我的应用程序正在运行,然后我 使用被动标志安装Access数据库引擎。< / p >

      1. 先从本地下载可以下载安装 李:# EYZ0 < / >
      2. 使用带有'/passive'标志的命令提示符进行安装。< >强 在命令提示符中执行如下命令: “AccessDatabaseEngine_x64.exe /被动”< /强> < /李>
      在这2步之后,我设法在构建后运行我的应用程序 x64或AnyCPU构建配置。这似乎解决了我的问题。

注意:步骤的顺序似乎有所不同,所以请按照相应的步骤。

我有同样的问题,但在这种情况下,microsoft-ace-oledb-12-0-provider已经安装在我的机器上,并为其他应用程序开发工作良好。

这些应用程序和我有问题的应用程序之间的区别是旧的应用程序在“当地IIS”上运行,而错误的应用程序在“IIS Express(从Visual Studio运行”)上运行。 我做的是-

  1. 右键单击项目名称。
  2. 转到属性
  3. 进入右边的Web标签。
  4. 在“服务器”下选择“本地IIS”,单击“创建虚拟目录”按钮。
  5. 再次运行应用程序,它就工作了。

我能够通过遵循本文中的步骤来修复这个问题:http://www.mikesdotnetting.com/article/280/solved-the-microsoft-ace-oledb-12-0-provider-is-not-registered-on-the-local-machine

对我来说,关键点是:

在调试IIS时,

Visual Studio默认使用32位版本。你可以改变这个 从Visual Studio中选择工具>选项>项目和 解决方案»Web项目»一般,并选择

"在网站和项目中使用64位版本的IIS Express "

在检查该选项后,然后将我的项目的平台目标设置为“任何CPU”(我在故障排除过程中已经将其设置为x86),我能够克服这个错误。

    我好几天都在面对同样的问题。我安装了OLEDB 驱动程序为64位,尝试32位也可用 微软的网站。李< / >
  • 我试着重新安装64bit版本的office 不知怎么回事,它没有起作用。尝试在IIS池中允许32位应用程序 李真的。< / >
  • 尝试将项目环境更改为X86, AnyMachine, Mixed。 我几乎尝试了所有我能在网上找到的补丁。但所有 解决方案让我失望。李< / > 虽然我终于明白了 我们下载的提供商是最新的,不能工作 用它也行。李< / >
  • 我卸载了它,安装了oledb驱动程序 14.0.7015.1000 .我没有它的链接,因为我从公司的资源,你可能要谷歌它,但它的工作。 我用的是微软的DOWNLOAD LINK,效果也不错…然而,它是版本14.0.6119.5000,但它工作

您需要根据办公安装的比特数,将“解决方案平台”从“任意CPU”改为“x86”或“x64”。

具体步骤如下:

  1. 在解决方案资源管理器中右键单击解决方案文件: # EYZ0 < / p >

    1. 单击配置管理器。
    2. 单击Active Platform下拉菜单,如果x86已经在那里,那么选择它,否则单击New。 李# EYZ0 < / p > < / >

    3. 在新的平台下拉菜单中选择x86或x64: 李# EYZ0 < / p > < / > 李< / ol > < / >

    编译并运行应用程序。

我已经在我的机器上安装了Microsoft Access数据库引擎2010可重分发,但仍然收到微软ACE OLEDB提供商错误。

然后我想起我最近升级到Office 2016,所以,也许我应该尝试重新安装Microsoft Access数据库引擎2010可重分发。这就解决了我机器上的问题。

所以,如果你已经升级到不同版本的微软办公软件,甚至修复/重新安装了你的微软办公软件,那么在浪费时间寻找其他修复之前,尝试重新安装Microsoft Access数据库引擎2010可重分发。好运!

如果你正在调试一个web项目,只要确保IIS Express运行在32位或64位,这取决于你的项目设置。

转到

工具>选项>项目和解决方案> Web项目

然后勾选(或取消勾选)“使用64位版本的IIS Express…”

下载&安装以下Access DB引擎(X86或X64:根据您的机器配置),看看魔术:)

https://www.microsoft.com/en-us/download/confirmation.aspx?id=13255

我在尝试使用SSMS 2014将数据从excel文件(xlsx)导入SQL Server DB时遇到了这个问题。

安装2007办公系统驱动:数据连接组件对我来说很有用。

如果您在试图从ASP. ASP. exe中使用ACE时遇到此错误。NET应用程序,最可能的原因是您安装了其中一个32位版本。默认情况下,64位操作系统上的IIS将在64位工作进程中运行应用程序。64位进程无法加载32位dll。当对ACE提供程序进行调用时,64位进程将尝试定位64位DLL。如果它不存在,就会收到将您带到这里的错误消息。

在这种情况下,您有两个选择。首先,您可以安装2010年的64位版本。如果你安装了2007年的32位版本,你可以简单地安装2010年的64位版本。如果您已经安装了32位版本的2010,则需要卸载它,然后下载并安装64位版本的2010。不能同时安装2010提供程序的32位和64位版本。如果在开发机器上执行安装,还可能受到任何现有Office安装的比特限制。

第二个选项是更改IIS中的应用程序池以启用32位应用程序。如果您使用的是完整版的IIS,则可以使用管理工具(控制面板»管理工具»Internet信息服务(IIS)管理器)来完成此操作。

要了解更多,请参考链接

当我将数据从Excel文件导入MS-SQL时,我收到了这个错误。 提供商已经安装(64位),这让我很惊讶为什么它不能工作。 所以我所做的就是找到这里使用的导入/导出应用程序,即. exe。 我发现它在

C:\Program Files\Microsoft SQL Server\130\DTS\ bin \ dtwizard .exe

然后我直接运行.exe来执行数据导入。它成功了!

我在不同电脑上解的方法是:

我有一台Windows 7 32位的机器,配有Visual Studio 2012,但没有Access数据库,因为我没有Office 2010。我复制了我在Windows 7 64bit机器上的相同源代码。

所以,我安装了AccessDatabaseEngine到这台Windows 7 32位机器,在下载它之后,一切都很好。

我在我的Windows 7 64位机器上仍然有这个问题,它已经有Office 2010,已经包括Access 2010。我在这台计算机上的解决方法是进入项目,选择属性,在平台目标有任何CPU,我检查偏好32位。重新编译/Build并且Microsoft.ACE.OLEDB.12.0'提供程序未在本地机器上注册消息已消失。

首先验证您的系统中安装了microsoft.ace.oledb.12.0的哪个版本。

检查以下路径C:\Program Files\Common Files\Microsoft Shared\OFFICE14\ACEOLEDB.DLL—64位已安装

请在以下路径C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE14\ACEOLEDB.DLL—x86位已安装

如果(x86)安装,则使用配置管理器将解决方案平台更改为x86,对于x64更改为x64。

如果没有,然后安装使用下面的链接

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

这个方法现在对我很有效。

  1. 访问这个页面,然后下载相应的包 你的电脑(AccessDatabaseEngine.exe或 李# EYZ0) < / >
  2. 安装。
  3. 享受……你的密码开始工作了…

但对于您的应用程序包,您可以使用以下任何解决方案:

  1. 进入C:\Program Files (x86)\Common Files\microsoft sharedC:\Program Files\Common Files\Microsoft Shared和放
  2. . OFFICE14目录,在你的包文件的相同位置

  1. 将两个项目(在item1中)附加到安装包中。

我也遇到过同样的问题。进入解决方案属性,将任何CPU更改为x86,我认为它会完成工作。

做这2步:

  1. 在这个菜单中:project ->志愿者项目属性……→构建:取消选中“偏爱32位”;
  2. 在扩展属性之前和之后写cuotes,就像这样:扩展属性='Excel 12.0 Xml;HDR=YES'
var fileName = string.Format("{0}", openFileDialog1.FileName);
var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}; Extended Properties='Excel 12.0 Xml;HDR=YES'", fileName);
var adapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", connectionString);
var ds = new DataSet();


adapter.Fill(ds, TableNmae);


DataTable data = ds.Tables[TableNmae];
dg1.DataSource = data;

虽然已经给出了很多答案,但我遇到的问题还没有被提及。

  • 我的情况: 64位应用程序,Win10-64, Office 2007 32位安装。
  • 安装32位安装程序AccessDatabaseEngine.exe,从MS下载 报告成功,但没有安装,验证与Powershell 上面一个帖子的脚本。

  • 64位安装程序AccessDatabaseEngine_X64.exe报告一个令人震惊的错误消息:

enter image description here

在Autodesk网站上已经找到了非常简单的解决方案。 只需将参数/passive添加到命令行字符串中,就像这样:

AccessDatabaseEngine_X64.exe /被动

安装成功,OleDb驱动程序正常工作。

我用OleDb处理的Excel文件是xlsx类型的,用EPPlus 4.5制作,用Excel 2007修改。

这些配置在2020年1月在我的新机器上工作:

(1 - x64) Windows 10 x64, Office 365 x64, AccessDatabaseEngine_x64 2016安装/被动参数,VStudio构建设置显式设置为x64,使用以下连接字符串:Provider= Microsoft.ACE.OLEDB.16.0;数据源= D: \ MyDatabase.accdb

(2 - x64或x32) Windows 10 x64, Office 365 x64, AccessDatabaseEngine_x64 2016安装/被动参数,加上AccessDatabaseEngine 2010(32位)安装/被动参数,VStudio构建设置设置为AnyCPU,使用以下连接字符串:Provider= Microsoft.ACE.OLEDB.16.0;数据源= D: \ MyDatabase.accdb

(3 - x32仅)Windows 10 x64, Office 365 x32, AccessDatabaseEngine 2010(32位)安装/passive参数,VStudio构建设置设置为x86,使用以下连接字符串:Provider= Microsoft.ACE.OLEDB.12.0;数据源= D: \ MyDatabase.accdb

失败的笔记

在连接字符串中使用ACE.OLEDB.12.0 x64提供程序失败,仅在(1)中如上所述安装了AccessDatabaseEngine_x64 2016。

在visual studio构建设置中使用AnyCPU失败(1)。需要设置x64。也许这是因为AnyCPU意味着Vstudio必须看到x32的ACE.OLEDB.nn。0提供程序。

当看到x64应用程序时,ACE.OLEDB.12.0 2016 x32 /被动引擎将不会安装。(ACE.OLEDB.12.0 2010 x32 /被动安装程序有效。)

结论

要使用x64构建设置,您需要在2020年1月使用2016 x64数据库引擎和ACE.OLEDB.16.0连接字符串提供程序以及显式x64构建设置。使用/passive选项可以简化安装。这都要归功于爆料的人!

要使用AnyCPU,我需要同时安装ACE.OLEDB.12.0 2010 x32引擎和ACE.OLEDB.16.0 x64引擎。这样Vstudio就可以在“AnyCPU”编译时同时看到x32和x64引擎。我可以将提供程序连接字符串更改为ACE.OLEDB.12.0(用于x32操作)或更改为ACE.OLEDB.16.0(用于x64操作)。两者都运行良好。

要使用x86构建设置,您需要有2010 x32数据库引擎和ACE.OLEDB.12.0连接字符串提供程序和显式x86构建设置,以便在2020年1月使用Office 365 x32。

我曾尝试卸载和安装“Microsoft Access Database Engine 2010(英文)”多次,最后评论-“从任意CPU更改选项为x86”;这招奏效了。

谢谢你的评论——在经历了两周的挫折后,我现在又回到了工作中。

只需要从Nuget包管理器中添加CsvReader。 这是快速和简单的,没有头痛的任何连接像这样。 只需使用nuget包管理器搜索并导入库:-

using LumenWorks.Framework.IO.Csv;

代码:

var csvTable = new DataTable();
using (var csvReader = new CsvReader(new
StreamReader(System.IO.File.OpenRead(filePath)), true))
{
csvTable.Load(csvReader);
string Column1 = csvTable.Columns[0].ToString(); //Read columns
}
64位版本的“Microsoft Access Database Engine 2010 Redistributable”允许您使用“Microsoft. ace . oledb .12.0”提供程序: # EYZ0 < / p >

如果使用VS 2012或更高版本,请确保" Prefer 32-bit"在项目的Properties =>构建=比;常规配置 # EYZ0 < / p >

在我的情况下,我没有意识到我有一个错字在我的连接字符串实际上是重要的。请注意,提供者末尾的.0是必需的:

所以这是正确的:

# EYZ0

这是不正确的:

# EYZ0

针对Visual Studio 2022(和更新的)

我每次都犯这个错误,但它没有任何帮助。VS2019是解决方案。

https://learn.microsoft.com/en-us/visualstudio/data-tools/accessing-data-in-visual-studio?view=vs-2022#data-providers

如果你使用Visual Studio 2022连接到数据库,你会 需要注意的是Visual Studio 2022是一个64位进程。这 这意味着Visual Studio中的一些数据工具将无法实现

.使用32位数据提供程序连接OLEDB或ODBC数据库

如果您需要维护连接到OLEDB或 ODBC数据库,您仍然能够构建和运行 Visual Studio 2022应用程序。然而,如果你需要使用任何 的Visual Studio数据工具,如服务器资源管理器,数据源 向导或数据集设计器,您将需要使用先前的 仍然是32位进程的Visual Studio版本。最后一个 32位进程的Visual Studio版本就是Visual Studio 2019 . < / p >