C#封装DataTable到DBF
来源:互联网 发布:krpano100源码 授权码 编辑:程序博客网 时间:2024/05/29 10:08
前言
之前讨论过
C#封装DBF文件到DataTable
那么今天反其道而行之,看一下如何将DataTable“封装”到DBF中(即生成一个DBF文件)
1.步骤描述
1.1 获取字段的信息
DataTable里面只有字段的名称,没有字段的长度
因此,必须有相应的模板文件来确定字段的长度
根据模板文件,获取每个字段的数据类型
以及字段长度
,进而确定最终DBF文件各字段的详情
1.2遍历每条数进行封装
在确定了DBF字段详情后,只需DataTable中对应字段的数据进行赋值即可
2.代码实现
/// <summary> /// 创建人:Stone6762 /// 创建时间:2017年3月10日18:12:30 /// 功能描述:将DataTable里的数据封装到DBF中去 /// </summary> /// <param name="initHeader">DBF模板列</param> /// <param name="fileName">目标DBF文件路径</param> /// <param name="dt">要封装的数据</param> /// 特别注意:因为不能确定同名文件是否满足模板,如果已经存在该文件,会将覆盖,不追加 public static void DataTableToDbf(string initFile, string fileName, DataTable dt) { try { //获取一个DBF文件对象 DbfFile dbf = new DbfFile(Encoding.Default); dbf.Open(initFile, FileMode.OpenOrCreate); DbfHeader initHeader = dbf.Header; //如果文件存在,那么需要删除文件 if (File.Exists(fileName)) { File.Delete(fileName); } dbf.Open(fileName, FileMode.OpenOrCreate); //创建DBF文件的结构(列名) dbf.Header.Unlock(); for (int i = 0; i < initHeader.ColumnCount; i++) { DbfColumn initC = initHeader[i]; dbf.Header.AddColumn(initC); } //读取DataTable写入到DBF文件里 foreach (DataRow dr in dt.Rows) { //将DataRow里的数据封装到DbfRecord里面 DbfRecord record = new DbfRecord(dbf.Header); foreach (DataColumn dc in dt.Columns) { try { record[dc.ColumnName] = dr[dc.ColumnName].ToString(); } catch { continue; } } dbf.Write(record, true); } //一定要Close才会把数据完全写入到DBF文件中。 dbf.Close(); } catch (Exception ex) { throw new Exception(ex.Message); } }
阅读全文
0 0
- C#封装DataTable到DBF
- C#封装DBF文件到DataTable
- C# 读取dbf文件中的数据到datatable中
- c#实现将DataTable中的数据导出到DBF文件
- C#封装EXCEL文件到DataTable
- 用c#打开.DBF文件 读取内容到DataTable或DataSet中
- 用c#打开.DBF文件 读取内容到DataTable或DataSet中
- C# DBF To/转换为 DataSet DataTable
- ado.net读取dbf文件内容到DataTable
- C# DataSet DataTable To/转换为 DBF 格式
- c# dbf
- c# DataRow添加到DataTable
- C#读取Excel到DataTable
- C# 将 DataTable t1 内容复制到 DataTable t2中
- dbf 到 excel转换
- C# 同类dataSet 合并到dataTable中
- C# 读写CSV文件到DataTable
- c#导出DataTable数据到文本
- Piggy-Bank (完全背包 动态规划)
- 在window下 安装vue.js
- Python中list的extend方法
- spring-boot 之 Hello World
- bootstrap table服务端实现分页
- C#封装DataTable到DBF
- 基数排序
- 20170809
- wireshark抓包常见问题分析
- 易经与人生-傅佩荣有声系列1
- aop(面向切面)编程思想在spring框架下实现的配置方法
- java并发实战读书笔记
- Spring cache + redis 项目偶发死锁异常浅析
- 2017-8-9