2016-09-21 26 views
2

コード:は失敗し

private void Button_Click_6(object sender, RoutedEventArgs e) 
{ 
    TimerView tobj = new TimerView(); 
    tobj.Show(); 
    string OracleServer = "Data Source=(DESCRIPTION=" 
+ "(ADDRESS=(PROTOCOL=TCP)(HOST=DLDT-0897.nectechnologies.in)(PORT=1521))" 
+ "(CONNECT_DATA=(SERVICE_NAME=XE)));" 
+ "User ID=system;[email protected];"; 
    public bool Open() 
{ 
    try 
    { 
     conn = new OracleConnection(OracleServer); 
     conn.Open(); 
     return true; 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
    return false; 
} 

エラーconn.Open()中:「MSIL」を建設中プロジェクトのプロセッサアーキテクチャとプロセッサのアーキテクチャの間に不一致があった

警告1参照 "Oracle.DataAccess、Version = 4.112.2.0、Culture =ニュートラル、PublicKeyToken = 89b483f429c47342、processorArchitecture = AMD64"、 "AMD64"この不一致は、実行時の障害を引き起こす可能性があります。構成マネージャーを使用してプロジェクトの対象プロセッサーアーキテクチャーを変更して、プロジェクトと参照の間でプロセッサーのアーキテクチャーを調整するか、プロジェクトの対象プロセッサーアーキテクチャーと一致するプロセッサーアーキテクチャーを参照に依存させることを検討してください。 WDPアプリケーション言語

+2

2つのプロジェクトが異なるアーキテクチャ用に設定されているようです。あなたのアプリはx86と表示され、オラクルの参照はx64 – Takarii

+0

です。コードの書式を確認してください。現在、それは読みにくいです。また、クリックハンドラ内の 'Open'メソッドに関するコンパイラエラーがあるようです。 – Stefan

答えて

1

ODP.NETパッケージには、32ビットプログラム用と64ビットプログラム用の2種類があります。プログラムを実行しているときに問題が発生する可能性があるので、コンパイル時に1つを選択する必要があります。したがって、(両方のプロセッサアーキテクチャをサポートするために)MSILから32ビットモードに切り替える必要があります。 ODP.NETの32ビット版を含める必要があります(今は64ビットを使用しています)。

OCIに依存しないため、両方のプロセッサー・アーキテクチャーをサポートする管理対象ODP.NETライブラリーを使用する方がよい場合があります。最新のバージョンhereが見つかります。

関連する問題