大多數 C# 專案連接 SQL Server,但舊系統常使用 FoxPro 產生的 .dbf 檔案。經測試,使用 ODBC 即可順利連線操作。
protected void Page_Load(object sender, EventArgs e)
{
using (var conn = new System.Data.Odbc.OdbcConnection())
{
string table = @"D:\aaa\code.dbf";
string connStr = @"Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=" + table + ";Exclusive=No;NULL=NO;Collate=Machine;BACKGROUNDFETCH=NO;DELETED=NO";
conn.ConnectionString = connStr;
conn.Open();
using (var cmd = new OdbcCommand())
{
cmd.Connection = conn;
string sql = "update " + table + " set other='2', rate=1.014";
cmd.CommandText = sql;
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
sql = "select * from " + table;
using (var da = new OdbcDataAdapter(sql, conn))
{
var dt = new DataTable();
da.Fill(dt);
GridView1.DataSource = dt.DefaultView;
GridView1.DataBind();
}
}
}
}
vfpodbc.dll 版本為 1.0,可能導致連線失敗,需替換為 6.1.8630.1 版本 (位於 C:\Windows\system32);叢集環境下所有節點版本必須一致。