關於 未在本地計算機上註冊「VFPOLEDB.1」 的解決方案

 在很古老的時候猿們會使用 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);
View Code

 

    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);
View Code

                 經驗證 上述方法能夠解決「未在本地計算機上註冊「VFPOLEDB.1」的程序」 ,如果不能解決請自行驗證! 
            相關工具信息:1) Microsoft Visual Studio 2003  + VFPOLEDBSetup 9.0 (Net 1.1 SP1) 工具

相關文章
相關標籤/搜索