C# 编写dBase III+;带C的DBF和FPT#

C# 编写dBase III+;带C的DBF和FPT#,c#,dbase,C#,Dbase,为了支持一个相当旧的应用程序,我想用C#编写一个dBase III+文件,它可以直接在遗留应用程序中使用 为此,我必须创建在第一个字节中包含0xF5的文件,这意味着它在前三位中得到一个二进制“111”/十进制“7”,表示表的版本。我还没有找到任何描述7是什么的规范,但我想它一定是dBase III+的指标。 最值得注意的是,可以使用Excel直接打开文件,而不显示任何错误消息,我将此行为用作对所创建文件的测试 似乎我没有正确配置数据库连接。我找到了两种方法,这两种方法都有一定的效果: 通过VFP

为了支持一个相当旧的应用程序,我想用C#编写一个dBase III+文件,它可以直接在遗留应用程序中使用

为此,我必须创建在第一个字节中包含0xF5的文件,这意味着它在前三位中得到一个二进制“111”/十进制“7”,表示表的版本。我还没有找到任何描述7是什么的规范,但我想它一定是dBase III+的指标。 最值得注意的是,可以使用Excel直接打开文件,而不显示任何错误消息,我将此行为用作对所创建文件的测试

似乎我没有正确配置数据库连接。我找到了两种方法,这两种方法都有一定的效果:

  • 通过VFPOLEDB.1/FoxPro实现的OLEDB连接。这将创建DBF/FPT-文件,但在第一个字节中表示30,这意味着前三个版本中仅表示“1”,表示位。我还没有找到一个文档告诉我1的意思,但我猜它的意思是“超越古代”。 文件无法在Excel中正确打开,旧应用程序可以读写,但不能附加到创建的表中

  • Microsoft.Jet.OLEDB.4.0与扩展属性为dBase III的OLEDB连接。这将创建一个可以在Excel中打开的DBF,但只要我添加一个备注字段,就会创建一个文件。第一个字节是83,因此前三位为100(bin)或4(dec),表示“数据库级别7”

  • 谁能告诉我dBase III+resp使用什么驱动程序吗。DBF/FPT-版本为111(bin)/7(dec)的文件

    问候


    Jens

    下面是对数据库文件结构的描述。它显示第一个字节的值指示的内容。当引用字节中的位时,通常从右边开始编号-因此0xF5将111作为最后三位(101作为前三位)。下面是对dBase文件结构的描述。它显示第一个字节的值指示的内容。当引用字节中的位时,通常从右边开始编号-因此0xF5将111作为最后三位(101作为前三位)。