2

次のコードを使用して、Oracleをデータベースとして使用してパラメータを追加しようとしています:

for (int i = 1; i <= count; i++)
{
    var parameterName = ":ref_cur" + i;
    DbParameter parameter = Acidaes.Data.DbHelper.CreateRefCursorParameter(
        parameterName, 
        ParameterDirection.Output);
    command.Parameters.Add(parameter);
}

パラメータの追加中に次のクラッシュが発生する

[A]Oracle.DataAccess.Client.OracleParameter は [B]Oracle.DataAccess.Client.OracleParameter にキャストできません。タイプ A は、場所「C:\WINDOWS\assembly\GAC_32\Oracle.DataAccess\2.112.2.0__89b483f429c47342\」の「デフォルト」コンテキストの「Oracle.DataAccess、バージョン = 2.112.2.0、カルチャ = ニュートラル、PublicKeyToken = 89b483f429c47342」から発生します。 Oracle.DataAccess.dll'. タイプ B は、場所 'C:\WINDOWS\Microsoft.Net\assembly\GAC_32\Oracle.DataAccess\v4' のコンテキスト 'Default' の 'Oracle.DataAccess, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342' から発生します。 .0_4.112.2.0__89b483f429c47342\Oracle.DataAccess.dll'.

このクラッシュを解決する方法が見つかりませんでした。

4

1 に答える 1

4

参照を確認する必要があります。見ているバージョンに不一致があります。

DbParameter parameter = 
 Acidaes.Data.DbHelper.CreateRefCursorParameter(parameterName, ParameterDirection.Output);

DbParameterDbHelperコードで参照されているものは、クラスから返されるものと同じ型 (この場合はバージョン) ではありません。の同じバージョンを参照するには、これら 2 つのプロジェクトを更新する必要がありOracle.DataAccessます。

于 2013-03-04T12:37:12.113 に答える