【问题标题】:dbf file created in c# can not open in dbase在c#中创建的dbf文件无法在dbase中打开
【发布时间】:2013-03-14 19:33:01
【问题描述】:

我在使用 OdbcConnection 时用 C# 代码创建了一个文件 .dbf,但是当我想用 dbase 打开它时,它说这不是一个 dbf 文件,谁能解释一下它为什么以及如何工作?

【问题讨论】:

  • 与数据库文件相关的文件头有不同版本... dBase、FoxPro(旧版本)和Visual FoxPro。您能否向我们展示连接(隐藏其他私有路径信息)以及您用于创建表的命令。另外,您真的要从 dBASE 打开吗?也是哪个版本。
  • 我必须用 dBase 打开它,因为另一个应用程序(创建于 25 年前,在 DOS 下)也使用它。连接是 ODBCConnection(DSN=CodeBase;DBQ=C:\Temp),命令是 CREATE TABLE CENTRALE (DATE DATE, PERS NUMERIC(5,0), SERVICE NUMERIC(12,2))
  • 事实上,我必须修改表的结构,因为我不能使用 ALTER TABLE,我必须 DROP 和 CREATE 添加了列的表,但每次创建时,DBF 文件损坏了……不仅DBase打不开,而且完全中断了……

标签: dbf dbase


【解决方案1】:

从您的 cmets 看来,这听起来像是来自 dBase III Plus。我什至不相信 ODBC 甚至早在 80 年代末、90 年代初就存在。回溯到那时,dBASE 甚至没有“数据库”,但所有表实际上都是免费的,作为开发人员,您可以编写关系来添加记录、建立键等。

您可能想要做的只是根据您希望直接从 dBASE 获得的格式创建一个表,然后将其空放在一个保存文件夹中。然后,当你需要它时,复制到目标目录并从那里运行。

第二个选项...去 Microsoft 并下载他们的“VFP Ole DB 提供程序”并尝试使用它。您也可以尝试执行 ExecNonQuery 并尝试类似

use SomeTable
copy to YourNewTable type foxplus

这可能是最接近 dBase 的输出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-10
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多