web-dev-qa-db-ja.com

c#を使用して.dbfファイルのデータを取得します

C#を使用して.dbfファイルのデータを取得するにはどうすればよいですか?

私がやりたいのは、各行(同じ列)のデータを読み取って、さらに処理することです。

ありがとう。

11
user1484319

dbfファイルへの接続文字列 を作成してから、OleDbを使用して、次のようなデータセットを設定できます。

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);
            }

後でds.Tables[0]を使用してさらに処理することができます。

この記事をチェックすることもできます DBFをDataTableにロードします

19
Habib

使用している.dbfファイルがディレクトリの階層にネストされているため、パスがかなり長くなり、残念ながらOleDbCommandオブジェクトが発生するため、受け入れられた回答が機能しないことがわかりました。投げるために。

私は きちんとした小さなライブラリ 動作するためにファイルパスだけを必要とすることを発見しました。これは、GitHubページの例から適応した小さなサンプルです。

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"]);
    }
}
2
Alexis Leclerc