2012-03-14 79 views
2

我有在我試圖連接到具有一臺在C#連接訪問,使用C#

我嘗試使用OLEDB連接到SharePoint列表中的Access數據庫的窗口應用程序鏈接到SharePoint列表數據庫:

  1. 使用訪問數據庫2007格式和ConnectionString中
    • 一切Microsoft.ACE.OLEDB.12.0工作完全沒有問題,直到重新的一個人報告錯誤「'Microsolf.ACE.OLEDB.12.0'提供者未在本地機器上註冊
    • 檢查:他有Windows x86,Access 2003,但不是2007,並且沒有「 2007 Office系統驅動程序:數據連接組件」安裝
    • 真是麻煩和費時得到這些安裝(公司的機器)
  2. 使用訪問數據庫和Microsoft.ACE.OLEDB 2003格式。連接字符串12.0
    • 與上述相同的錯誤。所以我想這是導致問題的「Microsoft.ACE.OLEDB.12.0」。但我不知道如何修復它。
  3. 使用訪問2003格式數據庫和我的機器上的ConnectionString
    • 錯誤Microsoft.Jet.OLEDB.4.0: 「找不到可安裝ISAM」(我不噸有Access 2003中,但只有Access 2007年)
    • 他的機器:完美的作品

請幫我指出我可以做些什麼來解決這個問題,而不必讓每個人都更新他們的Office版本到2007年,或者在連接到Access數據庫之前讓應用程序檢查人員的Office版本。

在此先感謝。

+1

您排除安裝'2007 Office System Driver',因此您排除了第1點和第2點。我將嘗試理清「無法找到可安裝的ISAM」和 – Steve 2012-03-14 10:30:28

+1

我想你正在使用創建應用程序32位ACE驅動程序,所以Jet 4.0驅動程序應該適合您的機器。在我切換到64之前,我有ACE和Jet:http://support.microsoft.com/kb/829558 – Fionnuala 2012-03-14 10:46:38

+0

@Steve是的,期待你的幫助。我認爲這應該可以修復,因爲我相信Microsoft Office應該向後兼容,對吧? – 2012-03-16 05:19:06

回答

1

你作爲一般規則不能鏈接到其他鏈接到數據的其他東西!

如果坐在SharePoint上的數據爲什麼試圖在這裏使用Access?你永遠不能鏈接到一個將錶鏈接到SQL服務器的Access數據庫,所以這使得用這種方法打SharePoint是很沒有意義的。

更糟糕的是,我不認爲SharePoint支持oleDB鏈接表。雖然Access確實支持oldDB,並且您試圖連接o Access,但您仍想記住ADO已被折舊。雖然Access數據引擎可以繼續接收各種新功能,如複雜數據支持(多值SharePoint列),以及我們針對SharePoint 2010中Access 2010的新線斷開模式,但這些功能當然不適用於通過嘗試鏈接到鏈接的表來消費。如前所述,由於過去Access連接到SQL Server或SharePoint,因此沒有人會建議您現在嘗試鏈接到Access文件,然後反過來必須將Web服務調用到SharePoint(順便說一下,Access使Web服務調用到SharePoint消費那些數據)。

由於數據在SharePoint上,您爲什麼試圖打到一些基於本地硬盤驅動器的文件?爲什麼不直接將SharePoint網站作爲網絡服務?有大量的Web服務以及在.net中使用SharePoint列表的方式。我發現沒有什麼理由和優勢可以將.net中的所有奇妙技術和功能都轉換爲使用Web服務,然後嘗試讀取某些基於文件的Access數據庫,這些數據庫鏈接到SharePoint。這種設置的唯一方法是有意義的,如果你的開發在Access中是主要的,那麼在這裏轉儲使用c#並且使用Access是有意義的。

因此,我的建議是使用c#中的SharePoint列表,並在此處繞過Access數據引擎。

+0

謝謝,我也想到了這一點。 (免責聲明:我對SP沒有太多的知識,所以如果我說錯了什麼,請幫助糾正我)主要問題是我無法訪問SP中的數據(無userid/pwd)。我只提供一個鏈接來查看自定義視圖中的數據。這就是我選擇使用Access的原因。我錯過了從SP視圖獲取數據的任何內容嗎? – 2012-03-16 05:16:30