天天看點

【轉】ADO.Net連接配接DBF檔案 

使用OLEDB查詢DBF的時候,對DBF檔案名稱的長度有限制。當長度超過8的時候,就會出錯:“Jet 資料庫引擎找不到對象……”。後來改用ODBC連接配接,方法:

【轉】ADO.Net連接配接DBF檔案 
【轉】ADO.Net連接配接DBF檔案 
【轉】ADO.Net連接配接DBF檔案 

Code

 1

【轉】ADO.Net連接配接DBF檔案 

string filepath=@"F:\shapefile\chzhXiaoqu.dbf";

 2

【轉】ADO.Net連接配接DBF檔案 

string dir = System.IO.Path.GetDirectoryName(filepath);

 3

【轉】ADO.Net連接配接DBF檔案 

string file = "["+ System.IO.Path.GetFileName(filepath)+"]";

 4

【轉】ADO.Net連接配接DBF檔案 

 5

【轉】ADO.Net連接配接DBF檔案 

string connStr = "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB="+dir+";Exclusive=No;";

 6

【轉】ADO.Net連接配接DBF檔案 

OdbcConnection conn2 = new OdbcConnection(connStr);

 7

【轉】ADO.Net連接配接DBF檔案 

conn2.Open();

 8

【轉】ADO.Net連接配接DBF檔案 

 9

【轉】ADO.Net連接配接DBF檔案 

string selectText = string.Format("SELECT * FROM {0}", file);

10

【轉】ADO.Net連接配接DBF檔案 

OdbcDataAdapter da = new OdbcDataAdapter(selectText, conn2);

11

【轉】ADO.Net連接配接DBF檔案 

System.Data.DataTable table = new System.Data.DataTable();

12

【轉】ADO.Net連接配接DBF檔案 

da.Fill(table);//OK

【轉】ADO.Net連接配接DBF檔案 

如果提示錯誤:“ERROR [IM001] [Microsoft][ODBC 驅動程式管理器] 驅動程式不支援此功能”,需要更新一下驅動,我往Windows\System32下拷貝一個vfpodbc.dll , 6.1.8630.1版本,解決了這個問題。

<a href="http://dllcentral.com/download/c7842840e5ce10cd493d02128506ada0/vfpodbc.dll">http://dllcentral.com/download/c7842840e5ce10cd493d02128506ada0/vfpodbc.dll</a>