有两个途径
一个是用odbc。。我试验了很久没有成功,不过也把步骤发出来大家参考。
用odbc先要安装odbc_net这个文件,安装之后在默认文件夹)里有个microsoft.data.odbc.dll把这个加入到专案里。
然后
using microsoft.data.odbc

  string sConnectionString;    
sConnectionString = "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=C:\\DOC\\PCS\\DBF\\invoice.dbf;Exclusive=No;NULL=NO;Collate=Machine;BACKGROUNDFETCH=NO;DELETED=NO";

    string sql = "select * from invoice.dbf";
       OdbcConnection cnn = new OdbcConnection(sConnectionString);
        
       cnn.Open();
       OdbcCommand cmd = new OdbcCommand(sql, cnn);
       string sts;
       OdbcDataReader  dr = cmd.ExecuteReader();
        while (dr.Read())
       {
           sts = dr[0].ToString();           
       }
       dr.Close();

但是我每次跑到cnn.open就不行了。抱错信息:ERROR [IM001] [Microsoft][ODBC Driver Manager] Driver does not support this function
我查了一下说是一个VFPODBC.DLL文件不够新需要新下。。网上的最新版本是6.1.86291我没下到,我下到一个比较新的版本但是没法用。所以就放弃了odbc的尝试。
第二个就是用oledb。这个比较简单。我是在csdb上发帖求助之后开始尝试这个的。
using System.Data.OleDb;

  OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=dBASE 5.0;Password=;User ID=;Data Source=C:\\DOC\\PCS\\DBF\\");
     conn.Open();
     OleDbCommand cmd = new OleDbCommand();
     cmd.CommandText = "select * from invoice.dbf";
     cmd.Connection = conn;
     OleDbDataReader reader = cmd.ExecuteReader();
     string sts;
     while (reader.Read())
     {
         sts = reader[0].ToString();
     }
     reader.Close();
//查询,下面是插入
string sql = "insert into invoice.dbf (INVNO,INVDATE,INVAMT,PAYDATE,WORKNO,SMRNO,CONTCODE,WORKCOMP) VALUES('123456','02-04-2006','100.0','02-04-2006','32145','232','12','02-04-2006')";
     cmd.CommandText = sql;
     cmd.Connection = conn;
     cmd.ExecuteNonQuery();