求C# Excel导入连接字符串,,高手进,关于64位和32位的问题..........

时间:2022-07-09 03:34:43
  string conStr=@"Provider=Microsoft.Jet.OLEDB.4.0 ;Extended Properties=Excel 8.0;Data Source =C:\aa\1.xls";
 var con = new System.Data.OleDb.OleDbConnection(conStr);
  if (con.State != ConnectionState.Closed)
  {
  con.Close();
  }
  con.Open();
在32位下是能成功打开的,,
但是
在64位下操作系统中就会报错,"未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序"
求  在64位下面连接字符,,

15 个解决方案

#1


64位下没有安装Microsoft.Jet.OLEDB.4.0驱动,你装office了吗,或者到网上下一个64位的装上

#2


该回复于2012-04-11 12:43:30被版主删除

#3


把你的程序从Any CPU改成x86(项目属性-目标平台)。

#4


电脑上装了office了啊!另外出这种没有其他办法可已么!
 1生成->配置管理器->平台->点击Any Cpu选项卡->新建->新建平台->X86
2.在对应的 IIS 应用程序池中,“设置应用程序池默认属性”/“常规”/"启用32位应用程序",设置为 true。

除了这2种方法没有其他方法了么!

#6


Microsoft.Jet.OLEDB.4.0只有32位的
IIS上面应用池中启用32位程序
或者你可以使用Microsoft.ACE.OLEDB.12.0,这个支持64位

#7


编译为x86

#8


参照
http://blog.sina.com.cn/s/blog_557194c30100wvit.html

#9


iis 6.0 里面找不到在对应的 IIS 应用程序池中,“设置应用程序池默认属性”/“常规”/"启用32位应用程序",设置为 true。

#10


64位下是连接不上的,可以将编译环境改为32位的

#11


64位下没有安装Microsoft.Jet.OLEDB.4.0驱动,你装office了吗,或者到网上下一个64位的装上

#12


(64位操作系统)未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序
 
解决方案如下:
 
1、执行cscript.exe %SYSTEMDRIVE%inetpubadminscriptsadsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
 
2、执行%SYSTEMROOT%Microsoft.NETFrameworkv2.0.50727aspnet_regiis.exe -i
 
3、web服务扩展ASP.NET v2.0.50727 (32-bit) 修改为允许状态

#13


引用 4 楼  的回复:
电脑上装了office了啊!另外出这种没有其他办法可已么!
 1生成->配置管理器->平台->点击Any Cpu选项卡->新建->新建平台->X86
2.在对应的 IIS 应用程序池中,“设置应用程序池默认属性”/“常规”/"启用32位应用程序",设置为 true。

除了这2种方法没有其他方法了么!

这种版本问题,能解决问题就行,别太纠结了。

#14


本帖最后由 net_lover 于 2012-04-17 13:21:07 编辑
Microsoft Access Database Engine 2010支持64位
http://www.microsoft.com/downloads/zh-cn/details.aspx?familyid=c06b8369-60dd-4b64-a44b-84b371ede16d

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\\myFolder\\myOldExcelFile.xls;Extended Properties=\"Excel 12.0;HDR=YES\";";

#15


算了不纠结问题了!结贴谢谢各位,

#1


64位下没有安装Microsoft.Jet.OLEDB.4.0驱动,你装office了吗,或者到网上下一个64位的装上

#2


该回复于2012-04-11 12:43:30被版主删除

#3


把你的程序从Any CPU改成x86(项目属性-目标平台)。

#4


电脑上装了office了啊!另外出这种没有其他办法可已么!
 1生成->配置管理器->平台->点击Any Cpu选项卡->新建->新建平台->X86
2.在对应的 IIS 应用程序池中,“设置应用程序池默认属性”/“常规”/"启用32位应用程序",设置为 true。

除了这2种方法没有其他方法了么!

#5


#6


Microsoft.Jet.OLEDB.4.0只有32位的
IIS上面应用池中启用32位程序
或者你可以使用Microsoft.ACE.OLEDB.12.0,这个支持64位

#7


编译为x86

#8


参照
http://blog.sina.com.cn/s/blog_557194c30100wvit.html

#9


iis 6.0 里面找不到在对应的 IIS 应用程序池中,“设置应用程序池默认属性”/“常规”/"启用32位应用程序",设置为 true。

#10


64位下是连接不上的,可以将编译环境改为32位的

#11


64位下没有安装Microsoft.Jet.OLEDB.4.0驱动,你装office了吗,或者到网上下一个64位的装上

#12


(64位操作系统)未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序
 
解决方案如下:
 
1、执行cscript.exe %SYSTEMDRIVE%inetpubadminscriptsadsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
 
2、执行%SYSTEMROOT%Microsoft.NETFrameworkv2.0.50727aspnet_regiis.exe -i
 
3、web服务扩展ASP.NET v2.0.50727 (32-bit) 修改为允许状态

#13


引用 4 楼  的回复:
电脑上装了office了啊!另外出这种没有其他办法可已么!
 1生成->配置管理器->平台->点击Any Cpu选项卡->新建->新建平台->X86
2.在对应的 IIS 应用程序池中,“设置应用程序池默认属性”/“常规”/"启用32位应用程序",设置为 true。

除了这2种方法没有其他方法了么!

这种版本问题,能解决问题就行,别太纠结了。

#14


本帖最后由 net_lover 于 2012-04-17 13:21:07 编辑
Microsoft Access Database Engine 2010支持64位
http://www.microsoft.com/downloads/zh-cn/details.aspx?familyid=c06b8369-60dd-4b64-a44b-84b371ede16d

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\\myFolder\\myOldExcelFile.xls;Extended Properties=\"Excel 12.0;HDR=YES\";";

#15


算了不纠结问题了!结贴谢谢各位,