C#封装DBF文件到DataTable

C#封装DBF文件到DataTable_第1张图片
封装DBF到DataTable过程

前言

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

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

说明

项目中必须引用FastDBF

using SocialExplorer.IO.FastDBF;

代码实现

          /// 
        /// 从DBF读取文件到DataTable
        /// 
        /// DBF的完整路径:如E:\1.dbf
        /// 
        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);
            }

        }

你可能感兴趣的:(C#封装DBF文件到DataTable)