Tôi rất tiếc về việc thêm câu trả lời thứ hai nhưng nếu bạn đã cài đặt ứng dụng khách 64 bit và 32 bit trong cùng một máy, bạn cũng có thể gặp phải sự cố này.
Hai ứng dụng khách đã được cài đặt
C:\oracle\product\11.2.0\client32Bit
C:\oracle\product\11.2.0\client64Bit
Kiểm soát đường dẫn của bạn Biến Môi trường. Ứng dụng khách Oracle nào trước, nó được tải trước ứng dụng khác.
echo %PATH%
XXXX;C:\oracle\product\11.2.0\client64Bit\BIN;XXX
Vì Ứng dụng khách Oracle 64bit của tôi lần đầu tiên trong PATH, VS.NET cố gắng sử dụng nó cho Kết nối Oracle và loại bỏ Ngoại lệ Hình ảnh Xấu.
set PATH=C:\oracle\product\11.2.0\client32Bit\BIN;%PATH%
REM Visual Studio 2008
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe"
REM Visual Studio 2010
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe"
Sau đó, bạn có thể kết nối oracle. Tất nhiên bạn có thể đặt ứng dụng khách 32Bit đầu tiên trong đường dẫn nhưng tôi thích đặt ứng dụng khách 64 bit trước 32 bit cho các ứng dụng khác.