.Net连接并使用C#读取.DBF文件类型Visual dBase level 7格式

时间:2015-02-25 14:16:55

标签: c# dbf dbase

我无法使用C#连接到DBF文件类型 Visual dBase 7级格式

我可以读取DBF文件类型dBase III和dBase IV,但文件类型为DBF Visual dBase 7 Visual studio会返回错误信息:

"格式表格格式不正确"。

以下是我用于控制台应用程序的以下代码:

static void Main(string[] args)
{
    string filepath = @"C:\Users\user\Desktop\BGF\DATA\";

    OdbcConnection CC = 
    new OdbcConnection("Driver={Microsoft dBase Driver     
    (*.dbf)};SourceType=DBF;SourceDB=" + filepath + ";Exclusive=No; 
    Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;");

    CC.Open();

    OdbcCommand cmd = new OdbcCommand("Select * From MyDBF_file", CC);
    OdbcDataReader dr = cmd.ExecuteReader();
    if (dr.HasRows)
    {
         DataTable dt = new DataTable();
         dt.Load(dr);
    }
    CC.Close();

    `enter code here`Console.WriteLine("Successful");
    Console.Read();
}

我认为提供商不兼容,但我尝试过使用Microsoft.Jet.OLEDB.4.0不起作用。 与vfpoledb提供商同样存在问题。

我尝试过简单查询   OdbcCommand cmd = new OdbcCommand(" Select * From MyDBF_file",CC);

同样的问题: - (

提前为您提供帮助或所有方法都有助于解决方案的一部分; - )

2 个答案:

答案 0 :(得分:0)

您在CONNECTION上看起来是正确的。这应该是表所在的PATH。但是,你应该

select * from SomeTableWithinThatPath

您正在尝试查询PATH,而不是特定的表格。

答案 1 :(得分:0)

对于Visual dBase 7级格式,此连接不起作用。 您可以使用dBase IV阅读器的代码库并修改标头以使用Dbase 7文件。

您可以从此处找到Dbase 7标头信息。

http://www.dbase.com/KnowledgeBase/int/db7_file_fmt.htm

从这里开始使用旧版本的DBF阅读器。

https://github.com/eXavera/NDbfReader