接手一个内部C#写的winform程序,用oleDb连接oracle数据库,始终报错:
未在本地计算机上注册“OraOLEDB.Oracle”提供程序
连接串为: <add name="oracle" connectionString="Provider=OraOLEDB.Oracle;Data Source=ASTEST;Password=123456;User ID=apms;"/>
尝试了网上介绍的很多方法,没有效果。
比如:regsvr32 "D:\oracle\product\11.2.0\dbhome_1\BIN\OraOLEDB11.dll" 也是徒劳
诡异的是我新写一个控制台程序,用以上链接又正常,这说明了本地驱动是没有问题的,那问题出错哪里呢,无意中发现项目属性“生成”页勾选了“首选32位(p)",
去掉以上的勾选,再运行就正常了另外,还发现相关二个问题:
1. Provider提供程序的问题:连接中提供程序若用Provider=MSDAORA;Data, 会报错:未在本地计算机上注册"MSDAORA.1"提供程序,这个或许可以理解,我64位电脑是没有这个驱动
2. 中文乱码问题:同样的oracle连接,从表中访问的中文可以正常显示,但Select '国家' as ID from dual输出中文又是乱码了,还不知是何原因
网友评论