我正在使用Visual Studio 2008(在vb.net)中的一個項目。該應用程序需要從Visual FoxPro數據庫(dbc文件)導入數據。不要問爲什麼FoxPro。它需要是vfp,並且數據庫每天由另一個應用程序更新;因此,我不能使用任何其他數據庫格式。Visual FoxPro和VS2008不顯示所有的DBF記錄。一個單獨的版本
我通過OleDb FoxPro驅動程序(最新版本)連接到數據庫。一切都還好(除了速度)。我可以從我需要的所有表格(dbf文件)導入數據。我將它加載到一個數據集中,然後對數據集本身進行操作,以避免重新連接時間(我只需要在此階段讀取數據)。
問題是: 當我編譯和運行代碼時,並不是所有的記錄都顯示出來。
然而,當我運行從發行文件夾(在斌目錄)的編譯版本,應用程序會顯示更多的記錄。
更令人費解的是,當我在Visual FoxPro 9.0中打開相同的數據表文件時,我只能看到VS2008中顯示的數據(不是在Realease版本中)。 但是,如果我在OpenOffice Calc中打開dbf,它會顯示所有記錄 - 即與我的應用程序的發佈版本相同的記錄。
我的第一個想法是:如果它沒有顯示VFP 9中的所有內容,則這些文件必須已經在不同版本的VFP中創建,所以我應該更改連接字符串。但是,爲什麼編譯的發佈版本顯示所有正確的數據?連接字符串必須正確。
我下載了DBF Viewer Plus來看看我的dbfs在另一個應用程序中,但它也看不到所有的記錄。
我不知道爲什麼它的行爲如此。而且這很煩人,因爲我每次想測試它時都需要構建我的應用程序。
我在Windows Vista上開發。
謝謝你的幫助!
恐怕不是這樣。 FoxPro顯示標記爲已刪除的記錄,但不顯示其他幾個。我需要的那些。只有在運行我的應用程序構建或OpenOffice Calc時,才能看到它們。順便說一句,OOffice無法看到在FoxPro中標記爲已刪除的記錄。 – jfrej 2009-11-21 18:23:58
至於我可以看到 - 無法在FoxPro中看到整個表格 - 所有索引都是唯一的。這可能是原因,但爲什麼編譯的版本會顯示沒有問題的所有記錄?我認爲在VS編譯/調試和VS版本構建之間存在問題。也許一些VS設置? VS環境中的行爲與其外部的行爲不同。 – jfrej 2009-11-21 18:38:36
僅供參考在OLE DB連接字符串中有一個用於包含/排除已刪除記錄的DELETED選項:https://www.connectionstrings.com/visual-foxpro/ – Keith 2014-12-18 19:46:52