2016-09-21 182 views
2

代碼:與Oracle數據庫連接失敗

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()

警告1有該項目正在建設「MSIL」的處理器架構和處理器架構之間的不匹配參考「Oracle.DataAccess,Version = 4.112.2.0,Culture = neutral,PublicKeyToken = 89b483f429c47342,processorArchitecture = AMD64」,「AMD64」。這種不匹配可能會導致運行時失敗。請考慮通過Configuration Manager更改項目的目標處理器體系結構,以便在項目和引用之間調整處理器體系結構,或者使用與項目的目標處理器體系結構相匹配的處理器體系結構來依賴引用。 WpfApplication

+2

聽起來像2個項目配置爲不同的架構。你的應用看起來是x86的,而oracle的參考是x64 – Takarii

+0

請檢查你的代碼的格式。目前這使它很難閱讀。在點擊處理程序中,似乎還有一個關於「Open」方法的編譯器錯誤。 – Stefan

回答

1

ODP.NET軟件包有兩種版本:一種用於32位程序,另一種用於64位程序。編譯時必須選擇一個,否則在運行程序時可能會遇到麻煩。所以你必須最好從MSIL切換到32位模式(以支持兩種處理器架構)。您需要包含32位版本的ODP.NET(現在您使用的是64位)。

更好的選擇可能是使用託管的ODP.NET庫,它支持兩種處理器體系結構,因爲它不再依賴於OCI。你可以找到最新版本here