天天看点

【转】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>