.net ';微软.ACE.OLEDB.12.0';提供程序未在本地计算机上注册
我试图从一个按钮单击事件的Excel文件中获取数据。我的连接字符串是:.net ';微软.ACE.OLEDB.12.0';提供程序未在本地计算机上注册,.net,excel,aceoledb,.net,Excel,Aceoledb,我试图从一个按钮单击事件的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”提供程序未在本地计算机上注册 我不知道如何解决这个问
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。嗯,你需要安装它。您正在寻找:
- 这个
- 这个
- 好吧,你需要安装它。您正在寻找:
如@backtestbroker.com所述,如果您使用从接受答案下载的内容,则需要为x86构建。64位版本的“Microsoft Access数据库引擎2010可再发行版”,允许您使用“Microsoft.ACE.OLEDB.12.0”提供程序,可在此处获得:
如@backtestbroker.com所指出的,如果您使用从已接受答案下载的内容,则需要为x86构建。如果您使用64位,但即使在安装AccessDatabaseEngine后仍存在问题,请参阅,它为我解决了问题
i、 e.如果您使用的是64位,但在安装AccessDatabaseEngine之后仍然存在问题,则需要安装,请参阅,它为我解决了问题 i、 e.如果安装的“AccessDatabaseEngine”仍然没有帮助,则需要安装,以下是解决方案: 您需要将活动解决方案平台从“任意CPU”更改为“x86” 从CodeProject.com如果安装的“AccessDatabaseEngine”仍然没有帮助,以下是解决方案: 您需要将活动解决方案平台从“任意CPU”更改为“x86”
来自CodeProject.com,所有仍受此影响的人 我一直在犯错误
OLEDB error "The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine."
…如OP所述,Shailesh Sahu
我有64位Windows7
我的问题在PowerShell脚本中,但使用的是连接字符串,类似于OP的帖子,因此希望我的发现可以应用于C#、PowerShell和任何依赖“Microsoft.ACE.OLEDB”驱动程序的其他语言
我遵循了MS论坛帖子上的说明:
我首先尝试安装64位版本,然后在此页面安装32位版本的AccessDatabaseEngine.exe
但仍然没有快乐
然后我在PowerShell中运行了下面的代码(来自SQL Panda的站点)
…这给了我这个结果(为了简洁起见,我删除了其他数据源)
如您所见,我有Microsoft.ACE.OLEDB.15.0(十五)而不是Microsoft.ACE.OLEDB.12.0(十二)
所以,我把我的连接字符串修改为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版本(如果不止一个)
希望任何发现这一点的人现在都可以检查安装了什么OLEDB版本,并使用适当的版本号。适用于所有仍受此影响的人 我一直在犯错误
OLEDB error "The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine."
…如OP所述,Shailesh Sahu
我有64位Windows7
我的问题在PowerShell脚本中,但使用的是连接字符串,类似于OP的帖子,因此希望我的发现可以应用于C#、PowerShell和任何依赖“Microsoft.ACE.OLEDB”驱动程序的其他语言
我遵循了MS论坛帖子上的说明:
我首先尝试安装64位版本,然后在此页面安装32位版本的AccessDatabaseEngine.exe
但仍然没有快乐
然后我在PowerShell中运行了下面的代码(来自SQL Panda的站点)
…这给了我这个结果(为了简洁起见,我删除了其他数据源)
如您所见,我有Microsoft.ACE.OLEDB.15.0(十五)而不是Microsoft.ACE.OLEDB.12.0(十二)
所以,我把我的连接字符串修改为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版本(如果不止一个)
希望任何发现这一点的人现在都可以检查安装了什么OLEDB版本,并使用适当的版本号。syp_dino
您为“Microsoft.ACE.OLEDB.12.0”提供程序建议的解决方案未在本地计算机上注册”错误是将活动解决方案平台从“任意CPU”更改为“x86”
当我执行这些步骤,重新构建解决方案,抓取EXE并将其放入网络时,在Windows7 64位机器上一切都运行顺利 syp_dino
您为“Microsoft.ACE.OLEDB.12.0”提供程序建议的解决方案未在本地计算机上注册”错误是将活动解决方案平台从“任意CPU”更改为“x86”
当我执行这些步骤,重新构建解决方案,抓取EXE并将其放入网络时,在Windows7 64位机器上一切都运行顺利 我遵守了别人的指示;安装此修补程序,安装该修补程序以及Microsoft Access数据库引擎2010 我的问题
(New-Object system.data.oledb.oledbenumerator).GetElements() | select SOURCES_NAME, SOURCES_DESCRIPTION
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"
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
c:\Program Files (x86)\Common Files\microsoft shared\OFFICE15\Csi.dll
c:\Program Files\Common Files\Microsoft Shared\OFFICE15\Csi.dll
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
var fileName = string.Format("{0}", openFileDialog1.FileName);
//var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", 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;