C#封装DBF文件到DataTable

封装DBF到DataTable过程

前言

最近的项目经常与DBF打交道,所以如何简洁的解析DBF文件就非常的关键了,

这里介绍一种不用安装驱动,只需要借助第三方类库FastDBF读取DBF文件到DataTable的方法

说明

项目中必须引用FastDBF

using SocialExplorer.IO.FastDBF;

代码实现

          /// <summary>
        /// 从DBF读取文件到DataTable
        /// </summary>
        /// <param name="fileName">DBF的完整路径:如E:\1.dbf</param>
        /// <returns></returns>
        public static DataTable DbfToDataTable(string fileName)
        {
            try
            {
                //返回的结果集
                DataTable dt = new DataTable();
                //获取一个DBF文件对象
                DbfFile dbf = new DbfFile(Encoding.Default);
                dbf.Open(fileName, FileMode.Open);

                //创建DataTable的结构(列名)
                DbfHeader dh = dbf.Header;
                for (int index = 0; index < dh.ColumnCount; index++)
                {
                    dt.Columns.Add(dh[index].Name);
                }

                //加载数据到DataTable里
                int i = 0;
                while (dbf.Read(i) != null)
                {
                    //获取一行
                    DbfRecord record = dbf.Read(i);
                    //将改行数据放到DataRow里
                    DataRow dr = dt.NewRow();
                    Object[] objs = new Object[record.ColumnCount];
                    for (int index = 0; index < record.ColumnCount; index++)
                    {
                        objs[index] = record[index];
                    }
                    dr.ItemArray = objs;
                    dt.Rows.Add(dr);
                    i++;
                }
                dbf.Close();
                return dt;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }

        }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,422评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,246评论 4 61
  • 情书:因为我爱你,所以我是别人眼中的渣男…… 酒吧。 我倒了一杯上次存在吧台里的威士忌,喝了一小口,细细的品位它里...
    浣慈阅读 210评论 5 1
  • 【断袖】连载2、邻居是两个本家的哥哥,两个粗壮醒事的小伙闻讯后立即赶来,协助父亲把屋前屋后收拾停当。我听见他们窃声...
    舞着羊鞭的诗人阅读 385评论 0 5
  • 我突然觉得自己是一个极度缺乏安全感的人,我期望我的生活得到保障,我害怕流离失所,其实我又觉得流离失所并没有什么,但...
    听风看树望天空阅读 190评论 0 1