Get data in a .dbf file using c#

前端 未结 2 560
孤街浪徒
孤街浪徒 2020-12-16 16:50

How can I get the data in a .dbf file using c#??

What I want to do is to read the data in each row (same column) to further process them.

Thanks.

相关标签:
2条回答
  • 2020-12-16 17:48

    I found out the accepted answer didn't work for me, as the .dbf files I'm working with are nested in a hierarchy of directories that makes the paths rather long, which, sadly, cause the OleDbCommand object to throw.

    I found a neat little library that only needs a file path to work. Here's a little sample adapted from the examples on its GitHub page:

    var file = "C:\\Path\\To\\File.dbf";
    using (var dbfDataReader = new DbfDataReader(file))
    {
        while (dbfDataReader.Read())
        {
            var foo = Convert.ToString(dbfDataReader["FOO"]);
            var bar = Convert.ToInt32(dbfDataReader["BAR"]);
        }
    }
    
    0 讨论(0)
  • 2020-12-16 17:49

    You may create a connection string to dbf file, then using OleDb, you can populate a dataset, something like:

    string constr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=directoryPath;Extended Properties=dBASE IV;User ID=Admin;Password=;";
    using (OleDbConnection con = new OleDbConnection(constr))
    {
        var sql = "select * from " + fileName;
        OleDbCommand cmd = new OleDbCommand(sql, con);
        con.Open();
        DataSet ds = new DataSet(); ;
        OleDbDataAdapter da = new OleDbDataAdapter(cmd);
        da.Fill(ds);
    }
    

    Later you can use the ds.Tables[0] for further processing.

    You may also check this article Load a DBF into a DataTable

    0 讨论(0)
提交回复
热议问题