C#读取DBF格式的数据表

一、制作一个测试用的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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值