我繼承了一些C#代碼。它處理舊的dBase文件。至少3 - 5年沒有人觸及代碼,並且編譯版本可以在某處運行,但我無法訪問它。現在,我嘗試它是如何工作的,從源重新編譯它在哪裏它應該運行(相同的架構,充分尋找驅動程序)一樣美觀的環境,它給了我下面的錯誤:爲什麼我無法訪問我的ODBC dBase表?
[42S02] [Microsoft][ODBC dBase driver] A Microsoft Jet database engine could not find the object 'test'. Make sure the object exists and that you spell its name and the path name correctly.
(編輯 )上
dbCommand.CommandText = "SELECT Count(*) FROM test";
recNum = (int)dbCommand.ExecuteScalar();
(EDIT)的與所述連接字符串
OdbcConnection connection = new OdbcConnection(String.Format("driver={{Microsoft dBase Driver (*.dbf)}};DriverID=533;Dbq={0};Exclusive=1;", path));
第二線
我試着在Google上找到明顯的解決方案,比如確定文件是否真的存在,更改文件名等等。所以,我非常確定該文件應該在哪裏,我非常確定該文件沒有被損壞(我可以用我從互聯網上下載的一些共享軟件打開它,更不用說在過去的3 - 5年內文件沒有改變)。這是我第一次使用dBase和ODBC,所以我可能會錯過一些顯而易見的東西。
我還可以嘗試使其工作嗎?
您可以在失敗的行提供代碼? – 2012-02-21 10:09:45
我在x64機器上使用C#代碼時發現問題。在我的情況下,我將目標輸出更改爲x86並運行。但同時,我還必須檢查機器上的dBase驅動程序是否存在。這是最痛苦的部分!但是,幸運的是,我可以訪問安裝程序的生產版本,該版本安裝所有必需的驅動程序和安裝後的工作! – Nauman 2012-02-21 10:27:49
編輯添加。該體系結構與以前(x86)相同,dBase驅動程序應該是相同的。或者我不知道如何分辨是否有區別。可悲的是生產版本安裝程序不安裝任何驅動程序。 – ytg 2012-02-21 10:39:37