Csharp/C#教程:从Excel读取:64位系统上的Microsoft.Jet.OLEDB.4.0错误分享


从Excel读取:64位系统上的Microsoft.Jet.OLEDB.4.0错误

我在我的应用程序中使用以下内容读取excel表的内容:

OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName + ";Extended Properties=Excel 8.0"); _myDataSet = new DataSet(); OleDbDataAdapter myCommand = new OleDbDataAdapter(" SELECT * FROM [" + "My Sheet" + "$]", con); myCommand.Fill(_myDataSet); con.Close(); 

这在64位系统中失败并出现错误:

Microsoft.Jet.OLEDB.4.0’提供程序未在本地计算机上注册

如何在64位机器上工作?

Microsoft.Jet.OLEDB没有64位版本,只有32位。 将您的应用程序编译为32位(平台目标:构建选项中的x86)。

Microsoft发布了一个驱动程序发行版,其中包含适用于Access和Excel的64位驱动程序。 您可以从MS 下载站点下载64位和32位版本。 下载页面还简要概述了在连接字符串中需要更改的内容,以引用ACE驱动程序。

简而言之,您安装了64位驱动程序分发版,然后将连接字符串更改为以下内容:

 string connStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=""Excel 8.0;IMEX=1"""; 

我不相信它有用…看到这个相关的问题: 在64位模式下不支持OleDB?

问题似乎是COM / Interop不是为64位环境设计的,因此无法在64位模式下注册。

您可以强制.NET应用程序在64位计算机上以32位模式运行,这将允许您访问OleDBfunction。

忘掉它,使用codeplex解决这个问题的这些dll。 https://exceldatareader.codeplex.com/

上述就是C#学习教程:从Excel读取:64位系统上的Microsoft.Jet.OLEDB.4.0错误分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1014369.html

(0)
上一篇 2021年12月30日
下一篇 2021年12月30日

精彩推荐