一、制作一个测试用的DBF文档
下载并安装工具 Microsoft Visual FoxPro
1.输入 create 命令创建一个表 test.dbf,并设置字段
2.如果对设置后的字段不满意,输入 modify structure 命令修改字段
3.输入 browse last 命令可以打开一个表,并在表中添加数据
二、制作一个可以读取这个DBF文档的C#程序
将表 test.dbf 放到C#程序的 Debug 目录下
程序代码如下:
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Data.Odbc;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace DbfReader{ public partial class FormMain : Form { public FormMain() { InitializeComponent(); } private void btnWriteToXml_Click(object sender, EventArgs e) { try { System.Data.Odbc.OdbcConnection ocConn = new System.Data.Odbc.OdbcConnection(); string strTableName = @"TEST.DBF"; string strConn = @" Driver={Microsoft dBASE Driver (*.dbf)}; SourceType=DBF; " + @" Data Source=" + strTableName + "; Exclusive=No; NULL=NO; " + @" Collate=Machine; BACKGROUNDFETCH=NO; DELETE=NO"; ocConn.ConnectionString = strConn; ocConn.Open(); string strSql = txtSql.Text; //需要 using System.Data.Odbc; OdbcDataAdapter oda = new OdbcDataAdapter(strSql, ocConn); DataTable dt = new DataTable(); oda.Fill(dt); dgvData.DataSource = dt; ocConn.Close(); MessageBox.Show("读取完毕,查询结果共计: " + dt.Rows.Count + " 条"); } catch (Exception ex) { MessageBox.Show(ex.Message); } } }}
END
附:后来换了个新的 Win7 64位 的电脑,这个程序就没法正确运行了。截图如下:
后来查了下ODBC配置界面(在开始菜单输入ODBC就可以进入),这台电脑里只有
Excel Files: Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)
MS Access Database: Microsoft Access Driver (*.mdb, *.accdb)
两项,而我的电脑中还有
dBASE Files: Microsoft dBase Driver (*.dbf)
后来我在新的电脑上安装了一个 Microsoft Visual FoxPro 6.0,ODBC数据源管理器中会有
Visual FoxPro Database: Microsoft Visual FoxPro
Visual FoxPro Tables: Microsoft Visual FoxPro
两项,这样将连接字符串修改为
Driver={Microsoft Visual FoxPro Driver}; SourceType=DBF; sourcedb=D:\DbfReader\DbfReader\bin\Debug\jyrq.dbf; BACKGROUNDFETCH=NO; DELETE=NO
就又可以正常访问DBF文件了
END