如何使用VB.Net從64位操作系統上的DBF文件讀取?如何使用VB.Net從64位操作系統上的DBF文件讀取?
回答
您需要將程序編譯爲32位;它仍然可以在64位操作系統上正常運行。將平臺目標更改爲「x86」而不是「任何CPU」或「x64」。然後,您可以使用Visual FoxPro Ole Db提供程序來訪問dbf文件。
首先,你需要訪問64位可再發行,網址: http://www.microsoft.com/downloads/en/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=en
然後,你可以配置的控制面板,管理工具,數據源(ODBC)ODBC數據源。
然後,我可以在C#中完成以下工作:這應該在VB.NET是相似的:
var connectionString = "Driver={Microsoft dBASE Driver (*.dbf)};" +
"Driverid=277;" +
@"Dbq=C:\temp\";
var query = "SELECT * FROM UPDATED" //file is "updated.dbf"
using (var oConn = new OdbcConnection { ConnectionString = connectionString })
{
try
{
oConn.Open();
var oCmd = oConn.CreateCommand();
oCmd.CommandText = Query;
var dr = oCmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
// get your data from your dbf!
}
}
}
finally
{
oConn.Close();
}
}
相反Microsoft.Jet.OLEDB的......你必須使用Microsoft.ACE.OLEDB ......在Win7的連接的字符串中。更多信息可以從www.connectionstrings.com獲得accdb部分。您可以按照表的形式連接到DBF文件並查詢數據/模式。
如果您的Win7是64位並且MS Office是32位安裝的(Taskmanager winword.exe * 32),則ACE驅動程序將以32位模式安裝,因此您的程序/源代碼將無法連接到DBF文件。
如何找到。
在C:\ windows \ sysWoW64 \ odbcad32.exe打開32位ODBC emulater並轉到「驅動程序」選項卡。您必須看到許多連接的驅動程序,您可以在其中找到ACE提供程序。
在C:\ windows \ system32 \ odbcad32.exe打開64位ODBC管理員,然後轉到「驅動程序」選項卡。您必須僅看到「SQL Server」驅動程序或少數驅動程序特定於64位而不是ACE驅動程序。
解決方案
- 在x86的模式編譯當前程序中使用32位仿真器的驅動程序。
- 另一種解決方案是找到是否可以卸載32位MS Office並獲得64位版本。這將自動解決所有問題。
好運
Venkat
- 1. 如何使用Delphi從64位操作系統上的DBF文件讀取數據?
- 2. 閱讀權限MDB文件在64位操作系統
- 3. 確定從32位操作系統或64位操作系統C/C++應用
- 4. 閱讀文件存儲器的內容,導致32位操作系統和64位操作系統
- 5. VM Virtual Box 64位硬件上的32位操作系統
- 6. 如果操作系統是64位
- 7. Raspberry Pi的64位操作系統3
- 8. 64位操作系統的Microsoft.Win32.RegistryKey
- 9. 64位操作系統上的32位或64位應用程序?
- 10. C#在64位操作系統上讀取錯誤的註冊表數據
- 11. 上運行64位操作系統給ERROR 64位操作系統Android的工作室:32位Linux的Android模擬器的二進制文件已被棄用
- 12. 從Excel讀取:64位系統上的Microsoft.Jet.OLEDB.4.0錯誤
- 13. 64位操作系統上的32位ActiveX DLL的問題
- 14. 如何檢測Flex中的32位或64位操作系統?
- 15. Lotus Notes Interop.Domino.dll 64位操作系統
- 16. 如何在64位操作系統中註冊activeX組件(.dll)
- 17. 如何從32位應用程序註冊64位DLL(在64位操作系統上)
- 18. 64位操作系統上的32位VC++可再發行?
- 19. 在32位操作系統中使用64位dll
- 20. 使用arm v8運行32位和64位操作系統
- 21. 如何閱讀Android操作系統上的DICOM文件?
- 22. 在32位操作系統上生成64位可執行文件
- 23. 如何使用ASP.NET在64位操作系統上導入Excel電子表格?
- 24. 淨WinForm的系統提示音在64位操作系統
- 25. 64位應用程序的32位操作系統的文件夾
- 26. 在64位操作系統上調試32位CASSINI(Oracle 9)
- 27. 在64位服務器上加載32位dll操作系統
- 28. 在32位操作系統上運行64位jvm
- 29. 從PHP調用nbtstat命令(64位操作系統)
- 30. 64位系統上的GDI +
小心問心無愧的dBase的驅動程序,但 - 它才能正常工作,如果你的DBF文件確實是dBASE文件,而不是例如FoxPro文件。 – Eyvind 2011-03-15 12:47:33
我無法找到有關該軟件包中是否還包含x64 FoxPro驅動程序的任何信息。如果這種方式對你不起作用,或者你無法確定DBF的「風味」,那麼按照Eyvind的建議,專門針對x86可能會更好。但是,如果您在類庫中這樣做,請記住,此x86決策需要漣漪式引用,或者通過引入服務層來緩解。 – JNadal 2011-03-15 12:59:11