0

32 ビット モードでアプリケーションを実行しています。Oracle クライアントを使用して Oracle DB に接続しようとします。Oracle クライアントは 64 ビットで実行されています。

string connectionString = @"Data Source=" + oracleDBName + ";User id=" + oracleDBUserId +";Password=" + oracleDBPwd +";";
            OracleConnection con = new OracleConnection(connectionString);
            try
            {
                con.Open();
                if (con != null)
                {
                    con.Open();
                }
                return true;
            }
            catch (OracleException)
            {
                return false;
            }

呼び出すと targetinvocationexception が発生します

con.Open();

理由: アプリケーションが 32 ビット モードで実行されているため、64 ビット dll をロードできません。

アプリケーションモードを変更できません。32 ビットの Oracle クライアントもインストールできません。この問題を解決する方法

前もって感謝します

4

1 に答える 1

1

.NET 用の Oracle ドライバーには、Oracle の「ネイティブ」クライアントが必要です。(シンクライアントが存在するJavaではありません)

Instant Client を試してみてください。インストールは必要ありません。 http://www.oracle.com/technetwork/topics/winsoft-085727.html

また、ODBC .NET ドライバーを試すこともできますが、Microsoft の Oracle ドライバーを使用するように ODBC DSN を構成します (ほとんどの Windows インストールには、すぐに使用できる Oracle 用の Microsoft の odbc ドライバーがあります)。繰り返します
が、1) 32 ビット アプリケーションの場合、ODBC の 32 ビット バージョンが必要です
。2) Oracle Instant Client が検索パスで使用可能である必要があります。

Windows 64 ビットには、32 ビットおよび 64 ビット アプリケーション用の 2 つのバージョンの ODBC 管理パネルがあります。32b バージョンを実行するには、C:\Windows\SysWOW64\odbcad32.exe を実行します。

于 2012-08-27T17:14:04.890 に答える