Vb.net,DBF文件,无法设置数字大小(总是20.5)

时间:2014-10-07 15:08:19

标签: numeric foxpro dbf

我使用JET oleDb 4.0创建DBF文件,但数字字段总是最终为(20.5)大小。这是我在网上看到的一个已知问题。很多人建议使用我尝试过的Visual FoxPro oleDb,但我需要在ArcMap中打开DBF文件,我会收到有关错误字段类型的错误。我猜不支持文件格式。如果我在FoxPro中打开使用FoxPro oledb创建的DBF并以DBase IV格式导出它,那么我可以在ArcMap中打开它。

但是当我创建它时,我已经使用了"扩展属性= dBase IV"选项,它似乎根本没有做任何事情。

我必须找到一种方法来获得DBASE IV格式的正确字段大小。有人能帮助我吗?

这是我的连接字符串:

Provider = Microsoft.Jet.OLEDB.4.0;数据源= {0};扩展属性= dBase IV; 这使得总是在20.5大小的数字

Provider = vfpoledb;数据源= {0};整理顺序=一般;扩展属性= dBase IV; 这使得与ArcMap不兼容的DBF

1 个答案:

答案 0 :(得分:1)

查看this answer for encoding.

它使用VFP OleDB提供程序,只是忽略CODEPAGE引用的上下文。 create table语法类似,您可以根据需要定义数字字段。下一个关键部分是在章节中使用VFPScript ......

  string vfpScript = @"use MyTest1
            Copy to MyTest2 type foxplus";


   command.CommandType = CommandType.StoredProcedure;
   command.CommandText = "ExecScript";
   command.Parameters.Add("myScript", OleDbType.Char).Value = vfpScript;
   command.ExecuteNonQuery();

这将.dbf文件从VFP普通文件头转换为dBASE兼容(早期FoxPro)文件头,它应该与您需要的兼容。