博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#读取DBF格式的数据表
阅读量:6511 次
发布时间:2019-06-24

本文共 2368 字,大约阅读时间需要 7 分钟。

hot3.png

一、制作一个测试用的DBF文档

下载并安装工具 Microsoft Visual FoxPro

1.输入 create 命令创建一个表 test.dbf,并设置字段

2.如果对设置后的字段不满意,输入 modify structure 命令修改字段

3.输入 browse last 命令可以打开一个表,并在表中添加数据

163805_ul4I_1425762.png

二、制作一个可以读取这个DBF文档的C#程序

将表 test.dbf 放到C#程序的 Debug 目录下

164241_J8hW_1425762.png

程序代码如下:

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位 的电脑,这个程序就没法正确运行了。截图如下:

190823_pJYw_1425762.png

后来查了下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)

191207_iQar_1425762.png

后来我在新的电脑上安装了一个 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

转载于:https://my.oschina.net/Tsybius2014/blog/278426

你可能感兴趣的文章