这是一个完全不依赖第三方(如odbc、jet等)直接读取并解析dbf文件格式的程序。至于性能方面,1万条以上的过大的数据没有测试过。其中部分代码参考老外的一个小程序,在其基础上修改完善编写出这个dll,以下所涉及到的数据类型均是根据sql2005进行转换,类库编写语言为为.net2.0。
下载地址:http://download.csdn.net/source/2635121
目前已知问题(解决方法已经找到,有些感觉没必要,有些没时间搞。以后有时间在解决吧):
1、dbf中备注类型,导出建表sql时可以识别(对应sql2005中的text或image,暂时没有细分统一导出为image类型),但导出insert语句是 此类型的值为null;
2、dbf中blob类型同上;
3、dbf中varbinary类型同上;
4、dbf中逻辑型,导出建表sql时统一成char(1),insert语句中真假分别用T、F表示;
5、dbf中整型AutoInc,导出建表sql时没有设置自增长;
6、导出建表sql语句时,统一可以为空,没有做不为空判断
使用方法:
1、导入dll到.net工程;
2、new一个新DBFToSql实例;
3、调用OpenDBF(string dbffile,String 表名前缀,string 表名,string 表名后缀)并传入dbf文件名(包括完整路径),根据返回值判断是否成功读取文件;
4、成功调用OpenDBF方法后,根据需要调用方法。
建表sql:GetTableCreateSql();
insert语句:GetTableInsertSql() 因数据可能很庞大,所以使用StringBuilder类型;
返回DataTable:GetDataTableFromDBF()