在很古老的時候猿們會使用 Microsoft Visual FoxPro(即Dbf)的數據庫,用於對數據的存儲,和Access相似,並且二者能夠互轉,能夠把它當成數據文件,如Access數據(MDB)、Excel數據(XLS)、文本數據(TXT)、Xbase數據(DBF)等格式。 sql
能夠使用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 仍然不行,那麼怎麼辦呢?使用如下方式讀取便可 ide
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) 工具