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);
圖例:
文章標籤
全站熱搜