C# The ‘OraOLEDB.Oracle’ provider is not registered on the local machine.问题解决策
问题场景
软件环境:
- 操作系统:window10_x64
- IDE:Visual Studio 2008
- Oracle_Client_11g_x86
- Oracle_Server_11g_x86
DB连接字符串
Provider=OraOLEDB.Oracle; Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=xxx.xx.xxx.xx)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=xxx))); User ID=XXX; Password=XXX;
报错信息
The 'OraOLEDB.Oracle' provider is not registered on the local machine.
问题原因
OS64位默认编译成64位程序集导致找不到32位的Oracle Provider
C#查看运行程序集位数
Console.WriteLine("Size=" + IntPtr.Size);
// Size =8 64位
// Size =4 32位
解决策略
将程序集编译改成32位(x86)
版权声明:本文为u012631267原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。