2016年12月19日 星期一

C# Read Foxpro DBF

C# 讀取 DBF

使用(If you use) System.Data.OleDb、Microsoft.Jet.OLEDB.4.0;
會出現錯誤(Exception),reader.Read() 無法作用。

改用 ODBC,要先安裝驅動程式(Dropbox 下載),
網上有其他資料說要裝 AccessDatabaseEngine,
不用裝,因為無效!



VFPOLEDBSetup 也是無效(not working)!

連線字串是重點,因為指定了驅動程式,
先安裝上面提供的 VFPODBC,
網上有其他資料ODBC 連線字串 Driver={Microsoft dBase Driver (*.dbf)}; 不一定有效(not always work),
因為你的電腦裝的驅動不一定和作者電腦一樣。

程式範例如下(an example):


using System.Data.Odbc;

string path = @"D:\";
string tableName = "EMPLOYEES.DBF";

using (OdbcConnection connection = new OdbcConnection("Driver={Microsoft Visual FoxPro Driver}; SourceType=DBF; SourceDB=" + path + tableName + "; Exclusive=No; NULL=NO; DELETED=NO;Collate=Machine; BACKGROUNDFETCH=NO;"))


using (OdbcCommand command = new OdbcCommand(string.Format("SELECT *  FROM {0}{1} WHERE No= '{2}' ;", path, tableName, number), connection))

之後使用可以讀取了!
OdbcDataReader reader = command.ExecuteReader();

沒有留言: