(准备)生成一个DataTable

 /// <summary>
/// 生成一个数据表
/// </summary>
/// <returns></returns>
static DataTable GetTable()
{
try
{
DataTable dt = new DataTable("Characters"); dt.Columns.Add("Column0");
dt.Columns.Add("Column1");
dt.Columns.Add("Column2");
dt.Columns.Add("Column3"); dt.Rows.Add("abc", "def", "ghi", "jkl");
dt.Rows.Add("def", "ghi", "jkl", "mno");
dt.Rows.Add("ghi", "jkl", "mno", "pqr");
dt.Rows.Add("jkl", "mno", "pqr", "stu"); Console.WriteLine("Set DataTable: " + dt.TableName);
foreach (DataRow dr in dt.Rows)
{
foreach (object obj in dr.ItemArray)
{
Console.Write(obj.ToString() + " ");
}
Console.WriteLine();
}
Console.WriteLine("Mission complete!"); return dt;
}
catch
{
return null;
}
}

函数:将DataTable的内容输出到DBF文件

 /// <summary>
/// 将数据表写入到DBF文件中
/// </summary>
/// <param name="dt"></param>
static void WriteToDbf(DataTable dt)
{
Console.WriteLine("Writing to: " + dt.TableName + ".dbf ..."); //连接字符串
string sConn =
"Provider=Microsoft.Jet.OLEDB.4.0; " +
"Data Source=" + System.IO.Directory.GetCurrentDirectory() + "; " +
"Extended Properties=dBASE IV;";
OleDbConnection conn = new OleDbConnection(sConn);
conn.Open(); try
{
//如果存在同名文件则先删除
if (File.Exists(dt.TableName + ".dbf"))
{
Console.WriteLine("Delete file: " + dt.TableName + ".dbf ...");
File.Delete(dt.TableName + ".dbf");
} OleDbCommand cmd; //建立新表
StringBuilder sbCreate = new StringBuilder();
sbCreate.Append("CREATE TABLE " + dt.TableName + ".dbf (");
for (int i = ; i < dt.Columns.Count; i++)
{
sbCreate.Append(dt.Columns[i].ColumnName);
sbCreate.Append(" char(25)");
if (i != dt.Columns.Count - )
{
sbCreate.Append(", ");
}
else
{
sbCreate.Append(')');
}
} Console.WriteLine("\nCreating Table ...");
Console.WriteLine(sbCreate.ToString());
cmd = new OleDbCommand(sbCreate.ToString(), conn);
cmd.ExecuteNonQuery(); //插入各行
StringBuilder sbInsert = new StringBuilder();
foreach (DataRow dr in dt.Rows)
{
sbInsert.Clear();
sbInsert.Append("INSERT INTO " + dt.TableName + ".dbf (");
for (int i = ; i < dt.Columns.Count; i++)
{
sbInsert.Append(dt.Columns[i].ColumnName);
if (i != dt.Columns.Count - )
{
sbInsert.Append(", ");
}
}
sbInsert.Append(") VALUES (");
for (int i = ; i < dt.Columns.Count; i++)
{
sbInsert.Append("'" + dr[i].ToString() + "'");
if (i != dt.Columns.Count - )
{
sbInsert.Append(", ");
}
}
sbInsert.Append(')'); Console.WriteLine("\nInserting lines ...");
Console.WriteLine(sbInsert.ToString());
cmd = new OleDbCommand(sbInsert.ToString(), conn);
cmd.ExecuteNonQuery();
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
} conn.Close();
}

Main函数中的调用

 static void Main(string[] args)
{
DataTable dt = GetTable(); //生成一个数据表
WriteToDbf(dt); //将数据表输出到DBF表中 Console.ReadLine();
7 }

运行结果

转自:http://my.oschina.net/Tsybius2014/blog/282797

C# 将DataTable存储到DBF文件中的更多相关文章

  1. 【VS开发】使用WinPcap编程(4)——把网络数据包存储到一个文件中

    这里用到的数据结构是pcap_dumper_t,这也是一个相当于文件描述符的东西,我们在用的时候先指定pcap_dumper_t *dumpfp; 使用两个函数来存储网络数据,一个是pcap_dump ...

  2. WPF RTSP存储到一个文件中的位置

    Vlc.DotNet.Core.Medias.MediaBase media1 = new Vlc.DotNet.Core.Medias.PathMedia(" CodeGo.net med ...

  3. 条形码的应用三-----------从Excel文件中读取条形码

    条形码的应用三------从Excel文件中读取条形码 介绍 上一篇文章,我向大家展示了生成多个条形码并存储到Excel文件中的一个方法.后来我又有了个想法:既然条码插入到excel中了,我可不可以从 ...

  4. <Android基础> (六) 数据存储 Part 1 文件存储方式

    第六章 数据存储 6.1 持久化技术 持久化技术指将内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关机的情况下,这些数据仍然不会丢失. 主要有三种方式用于简单地实现数据持久化功能:文件存储.S ...

  5. JavaDBF:保存行情实时数据到DBF文件

    JavaDBF.jar其实很早都不再更新了,在日新月异的科技圈算得上远古上神的jar包,早该身归混沌了. 但我们的项目要用到,因为之前做的大宗期货交易行情的分析文件依然是dbf文件,没有办法,还得用 ...

  6. Go Web:数据存储(2)——CSV文件

    存储到CSV文件中 1.内存存储 2.CSV文件存储 3.gob序列化存储 本文接上一篇:内存存储. 关于CSV文件的说明,见csv文件格式 当数据存储到了内存中,可以在需要的时候持久化保存到磁盘文件 ...

  7. 如何将Python对象保存在本地文件中?

    Python对象的永久存储 1.使用Python的pickle模块 import pickle class A: def __init__(self,name,a): self.name=name s ...

  8. IntelliJ IDEA + Maven iml文件中依赖项的需求是什么?

    在Maven中,项目的依赖关系在pom.xml文件中指定.在IntelliJ IDEA中,即使对于Maven项目,相同的信息也存储在iml文件中.在两个地方有相同的信息需要什么? 当导入Maven项目 ...

  9. 把数据存储到 XML 文件

    通常,我们在数据库中存储数据.不过,如果希望数据的可移植性更强,我们可以把数据存储 XML 文件中. 创建并保存 XML 文件 如果数据要被传送到非 Windows 平台上的应用程序,那么把数据保存在 ...

随机推荐

  1. Java中文档制作与继承

    1:如何制作帮助文档(了解) (1)写一个类 (2)加入文档注释 (3)通过javadoc工具生成即可 javadoc -d 目录 -author -version ArrayTool.java 2: ...

  2. css中的display以及position属性

    我们都知道,元素分为行内元素和块级元素,在页面布局中,我们常常需要让行内元素具有块级元素的特性,或者使块级元素转换成行内元素,这就要使用我们的display属性了. 我们先定义三个div: 以上的三个 ...

  3. zipalign内存对齐优化

    zipalign:android中SDK下tools文件夹 用来对资源文件的内存进行对齐优化 手工命令: 优化:zipalign -v 4 source.apk destination.apk 4: ...

  4. day11 堡垒机

    项目实战:运维堡垒机开发 前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多人觉得,堡垒机就是跳板机,其实这个认识是不全面的,跳板功能只是堡垒 ...

  5. 一些sql语句的常用总结(重要)

    select primary_flag from tc_contact where primary_flag !=0 select dept_id,dept_name,tree_level,tree_ ...

  6. Erlang 103 Erlang分布式编程

    Outline 笔记系列 Erlang环境和顺序编程Erlang并发编程Erlang分布式编程YawsErlang/OTP 日期              变更说明 2014-11-23 A Outl ...

  7. YHLMR009 交货单查询

    *********************************************************************** * Title : YHLMR009 * * Appli ...

  8. php部分---创建连接数据库类

    class DBDA { public $host="localhost"; public $uid="root"; public $pwd="123 ...

  9. hdu2874 LCA

    题意:现在有 n 个点与 m 条边的无向无环图,但是图不一定完全连通,边有各自的边权,给出多组询问,查询两点之间的路径权值和,或者输出两点不连通. 一开始有最短路的想法,但是由于询问有 1e6 组,做 ...

  10. mac 下安装 lua5.3 + cjson

    1.lua 5.3的安装 直接去官网下载 http://www.lua.org/ftp/lua-5.3.3.tar.gz make macosx sudo make install 2.CSJON 编 ...