2017-04-21 101 views
0

我有一個問題,即我嘗試安裝它的多個版本,我的c#(asp.net)代碼無法識別訪問數據庫引擎。連接Visual Studio到64位訪問

現在我發現了原因 - 由於Visual Studio是32位(由於某些原因,沒有64位版本),它只能與32位引擎一起工作。

不幸的是,32位和64位辦公產品無法共存,並且阻止我安裝32位引擎(我有64位辦公室)。

有什麼辦法可以將Visual Studio連接到引擎而不需要卸載整個辦公軟件包?

編輯:繼承人的代碼

public bool Connect(string connectionString) 
{ 
    if (this.connection != null) 
    { 
     if (!this.connection.State.Equals(ConnectionState.Closed)) 
     { 
      this.connection.Close(); 
     } 
    } 
    this.connection = new OleDbConnection(connectionString); 
    this.connection.Open(); 
    return true; 
} 

與連接字符串

Provider=Microsoft.ACE.OLEDB.12.0; Data Source='|DataDirectory|\db.accdb'; Persist Security Info=False; 

PS:我知道我應該用的try-catch圍繞着它,我wan't看到調試例外...

編輯2:我現在試圖使用Jet提供程序而不是ACE提供程序(並使用舊訪問.mdb格式),因爲它不是辦公室的一部分,所以我可以有一個版本VS supp orts,似乎現在工作正常...

+0

它不應該是Visual Studio的問題,它應該是你編譯的C#應用​​程序。應用程序是爲32位還是64位體系結構編譯的? Visual Studio本身是32位的事實不應該有任何區別AFAIK。它可以編譯爲其他目標體系結構。 – ADyson

+0

P.S. VS只有32位的原因是非常明智的 - 見這篇文章https://www.infoq.com/news/2016/01/VS-64-bit – ADyson

+0

你試圖連接到什麼具體訪問? VS中的一些數據工具?或者用C#編寫的ASP.NET應用程序?不要將IDE與框架混淆,它們是不同的。 – mason

回答

0

如果你可以發佈代碼,你使用連接到數據庫將是偉大的。 但是在這裏。安裝此引擎(https://www.microsoft.com/en-gb/download/details.aspx?id=13255)32位。由於您的Visual Studio將只有32位應用程序等

後,我安裝,你應該能夠使用下面的連接字符串

Microsoft.ACE.OLEDB.12.0 
Driver={Microsoft Access Driver (*.mdb, *.accdb)}; 

給一個去,讓我知道是否可行。你的代碼也會有很大的幫助。 如果它沒有工作發佈的odbc源圖片。打開Windows搜索並鍵入odbc,然後用截圖編輯您的文章,以便我可以安裝您已安裝的驅動程序。

+0

我無法安裝32位引擎,因爲它與我擁有的64位辦公室相沖突。我想如果沒有解決方案,我將不得不重新安裝辦公室:( – TulkinRB

+0

哦,我明白了你有沒有嘗試odbc而不是oledb。這是否有所作爲。還 – noyanc

+0

我沒有,現在我想使用Jet提供程序而不是ACE,如果它不起作用,我會嘗試odbc。謝謝! – TulkinRB