近日,一项目需要从一中后缀为dbf的数据文件中读取数据。在读取过程,遇到点问题。以下为解决思路:
在.NET中读取dbf文件,需要使用ODBC数据源的方式。
我的连接字符串如下:
<?
xml version="1.0" encoding="utf-8"
?>
< configuration >
< appSettings >
< add key ="dbConnection" value ="Driver={Microsoft Visual FoXPro Driver};SourceType=DBF;SourceDB=D:\work\数据\show2003.dbf;Exclusive=No;NULL=NO;Collate=Machine;BACKGROUNDFETCH=NO;DELETED=NO" />
</ appSettings >
</ configuration >
< configuration >
< appSettings >
< add key ="dbConnection" value ="Driver={Microsoft Visual FoXPro Driver};SourceType=DBF;SourceDB=D:\work\数据\show2003.dbf;Exclusive=No;NULL=NO;Collate=Machine;BACKGROUNDFETCH=NO;DELETED=NO" />
</ appSettings >
</ configuration >
注意根据自己的环境,修改其中的SourceDB的值,对应与你的dbf文件的详细路径。
然后使用如下代码,连接数据库,读取数据,但抛出了一个异常。
根据异常,搜索后,在http://blog.csdn.net/precipitant/archive/2006/09/11/1208064.aspx原因,我的widows2003系统上面的Visual FoXPro的odbc驱动更新了,但不兼容以前的格式。根据文件名vpfodbc.dll搜索,在http://www.zhaodll.com/上找到该文件不同系统的DLL包,备份出c:\windows\system32\vpfodbc.dll,取出压缩包其中的WINDOW2000版的文件,替换了原版文件,再测试,打开连接成功。
在另一台WINDOWS2003的电脑,使用SQL2003导Visual FoXPro的数据时,也会出现这种情况,需要找老版本的ODBC驱动。