關於 未在本地計算機上注冊“VFPOLEDB.1” 的解決方案


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

 

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

                 經驗證 上述方法可以解決“未在本地計算機上注冊“VFPOLEDB.1”的程序” ,若是不能解決請自行驗證! 
            相關工具信息:1) Microsoft Visual Studio 2003  + VFPOLEDBSetup 9.0 (Net 1.1 SP1) 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM