首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 透過 ODBC 操作 DBF (FoxPro/Visual FoxPro) 資料庫完整指南

     編輯:關於C#

連線字串關鍵

string tablePath = @"D:\data\code.dbf"; // 必須含完整路徑
string connStr = $@"Driver={{Microsoft Visual FoxPro Driver}};SourceType=DBF;SourceDB={tablePath};Exclusive=No;NULL=NO;Collate=Machine;BACKGROUNDFETCH=NO;DELETED=NO";

完整範例:更新與查詢

using (OdbcConnection conn = new OdbcConnection(connStr))
{
    conn.Open();

    // 更新 (表名需含路徑)
    using (OdbcCommand cmd = conn.CreateCommand())
    {
        cmd.CommandText = $"UPDATE '{tablePath}' SET other='2', rate=1.014";
        cmd.ExecuteNonQuery();
    }

    // 查詢繫結 GridView
    string sql = $"SELECT * FROM '{tablePath}'";
    using (OdbcDataAdapter da = new OdbcDataAdapter(sql, conn))
    {
        DataTable dt = new DataTable();
        da.Fill(dt);
        gridView1.DataSource = dt.DefaultView;
        gridView1.DataBind();
    }
}

關鍵注意事項

  1. 表名含路徑:DBF 無資料庫概念,SQL 陳述式中表名即檔案完整路徑 (含單引號)。
  2. 驅動程式版本:Windows Server 2003 內建 vfpodbc.dll 為 1.0 版,**必須替換為 6.1.8630.1** (通常在 C:\WINDOWS\system32),叢集環境所有節點版本需一致。
  3. 編碼問題:DBF 多為系統預設代碼頁 (CP936/Big5),讀取中文亂碼時可在連線字串加 CodePage=936 或讀取後手動轉碼。
  4. 刪除標記:DELETED=NO 讀取含刪除標記記錄,YES 則自動過濾。
  5. 64 位元環境:需安裝 64 位元 VFP ODBC 驅動 (VFPOLEDB/ACE OLEDB 替代方案),或將應用程式設為 32 位元 (Prefer 32-bit)。

替代方案:OLE DB Provider

string oleConn = $@"Provider=VFPOLEDB.1;Data Source={Path.GetDirectoryName(tablePath)};Extended Properties=dBASE IV;";
using (OleDbConnection conn = new OleDbConnection(oleConn)) { ... }

VFPOLEDB 支援更完整的 VFP 功能 (如資料庫容器 .dbc),但同樣需注意位元數相容。

小結

ODBC + VFP Driver 是存取 DBF 最通用路徑,**驅動版本一致性** 是部署成敗關鍵。新專案建議遷移至 SQLite / SQL Server LocalDB 等現代嵌入式資料庫。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved