在很古老的時候猿們會使用 Microsoft Visual FoxPro(即Dbf)的數據庫,用於對數據的存儲,和Access類似,而且兩者可以互轉,可以把它當成數據文件,如Access數據(MDB)、Excel數據(XLS)、文本數據(TXT)、Xbase數據(DBF)等格式。
可以使用OleDbConnection、OdbcConnection 等,去讀取Dbf文件。內容的讀取操作和Access的處理方式相同,支持Sql語句的查詢,此dbf可以使用Excel打開查詢,由於VF盛行時 為V6.0 現在V9.X 為了更好的查詢數據想大家推薦一個DBF管理工具 DBF Viewer 2000 現在V 5.X。
在我們使用VS 20XX讀取操作DBF的時候呢,有時候會遇到 未在本地計算機上注冊“VFPOLEDB.1”的程序,這個和人品無關,但和項目計划有關,關它有關無關哦 直接看解決方案
1.先要安裝VF的驅動程序(VFPOLEDBSetup.msi 可在微軟下載)。
2.分情況使用
1)若是C# 桌面應用程序的話(指看得見界面的程序),一般安裝了第一步 就基本正常了,若不正常 人品爆弱。
可以使用以下方式讀取

1 FileInfo fi = new FileInfo(dbfpath); 2 string mulu = fi.DirectoryName; 3 string filename = fi.Name; 4 OleDbConnection conn = new OleDbConnection(); 5 string connStr = @"Driver={Microsoft Visual FoxPro Driver};Provider=VFPOLEDB;Data Source=" + mulu + ";Collating Sequence=machine;"; 6 conn.ConnectionString = connStr; 7 conn.Open(); 8 string sql = String.Format(@"select * from TableName"); 9 OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);
2)若是使用1)將程序寫入Windows 服務中,則此錯誤 未在本地計算機上注冊“VFPOLEDB.1” 的程序 仍然會出現,找不到VFPOLEDB的驅動, 注冊VFPOLEDB.DLL 仍然不行,那么怎么辦呢?使用以下方式讀取即可

1 FileInfo fi = new FileInfo(dbfpath); 2 string mulu = fi.DirectoryName; 3 string filename = fi.Name; 4 System.Data.Odbc.OdbcConnection conn = new System.Data.Odbc.OdbcConnection(); 5 string connStr = @"Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=" + mulu + ";Exclusive=No;NULL=NO;Collate=Machine;BACKGROUNDFETCH=NO;DELETED=NO"; 6 conn.ConnectionString = connStr; 7 conn.Open(); 8 string sql = String.Format(@"select * from TableName"); 9 System.Data.Odbc.OdbcDataAdapter da = new System.Data.Odbc.OdbcDataAdapter(sql, conn);
經驗證 上述方法可以解決“未在本地計算機上注冊“VFPOLEDB.1”的程序” ,若是不能解決請自行驗證!
相關工具信息:1) Microsoft Visual Studio 2003 + VFPOLEDBSetup 9.0 (Net 1.1 SP1)