1.前言:
DBF為dBASE/VFP的資料庫格式,透過使用OLEDB/ODBC的方式,可以讀取資料庫的內容。

2.說明:
程式碼:

//範例一: 利用Oledb讀取DBF資料庫
public static OleDbConnection OleDbDbfOpenConn(string DatabaseDirectory)
{
	string cnstr = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + DatabaseDirectory + "; Extended Properties=dBASE IV; User ID=Admin; Password=;");
	OleDbConnection icn = new OleDbConnection();
	icn.ConnectionString = cnstr;
	if (icn.State == ConnectionState.Open) icn.Close();
	icn.Open();
	return icn;
}

public static DataTable GetOleDbDbfDataTable(string DatabaseDirectory, string OleDbString)
{
	DataTable myDataTable = new DataTable();
	OleDbConnection icn = OleDbDbfOpenConn(DatabaseDirectory);
	OleDbDataAdapter da = new OleDbDataAdapter(OleDbString, icn);
	DataSet ds = new DataSet();
	ds.Clear();
	da.Fill(ds);
	myDataTable = ds.Tables[0];
	if (icn.State == ConnectionState.Open) icn.Close();
	return myDataTable;
}

//範例二: 利用Odbc讀取DBF資料庫
public static OdbcConnection OdbcDbfOpenConn(string Database)
{
	string cnstr = "Driver={Microsoft dBase Driver (*.dbf)}; SourceType=DBF; SourceDB=" + Database + "; Exclusive=No; Collate=Machine; NULL=NO; DELETED=NO; BACKGROUNDFETCH=NO;";
	OdbcConnection icn = new OdbcConnection();
	icn.ConnectionString = cnstr;
	if (icn.State == ConnectionState.Open) icn.Close();
	icn.Open();
	return icn;
}

public static DataTable GetOdbcDbfDataTable(string Database, string OdbcString)
{
	DataTable myDataTable = new DataTable();
	OdbcConnection icn = OdbcDbfOpenConn(Database);
	OdbcDataAdapter da = new OdbcDataAdapter(OdbcString, icn);
	DataSet ds = new DataSet();
	ds.Clear();
	da.Fill(ds);
	myDataTable = ds.Tables[0];
	if (icn.State == ConnectionState.Open) icn.Close();
	return myDataTable;
}

3.應用:

//範例一: 利用Oledb讀取DBF資料庫
string databaseDirectory = @"d:\tmp";
string database = "World.dbf";
string sql = "select * from " + database;
DataTable dt = GetOleDbDbfDataTable(databaseDirectory, sql);

//範例二: 利用Odbc讀取DBF資料庫
string database = @"d:\tmp\World.dbf";
string sql = "select * from " + database;
DataTable dt = GetOdbcDbfDataTable(database, sql);

圖例:

dbf  

arrow
arrow
    文章標籤
    C# DBF OLEDB/ODBC
    全站熱搜
    創作者介紹
    創作者 西夏普 的頭像
    西夏普

    西夏普的部落格

    西夏普 發表在 痞客邦 留言(3) 人氣()