.Net(C#)操作DBF心得

原创 2009年09月12日 20:08:00

最近做了一个小项目,关于读写DBF的,把心得写下来,分享一下

 

首先感谢bluesky521,很多关于DBF的心得,都是从他的博客学到的,我这里只是整理一下而已

(bluesky521 Blog地址:http://www.cnblogs.com/bluesky521/archive/2006/10/22/536788.html 

 

关于读取DBF

主要分ODBC与OLEDB这两种方式,对于一般机器来说ODBC的驱动是有的,不需要另外安装,但对于用OLEDB方式访问DBF就要下载驱动了

 

连接不同的数据库,无非就是连接字符串的不同,以下我将写一下连接DBF不同方式下的连接字符串

1.ODBC

ODBC驱动:http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=6c050fe3-c795-4b7d-b037-185d0506396c 

string connStr =

@"Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB= C:/test.dbf;Exclusive=No;NULL=NO;Collate=Machine;BACKGROUNDFETCH=NO;DELETED=NO"; 

红色标记的就是你的DBF文件全路径

注意的是,用ODBC访问DBF是用全路径作为表名的

eg:你的DBF放在C:,路径就是C:/test.dbf

组建select语句的时候,写法应该是以下形式

string sql = @"select * from [C:/test.dbf]"

(加上 '[' 和 ']' 是为了防止路径中间出现空格或特殊字符,否则sql语句是无法执行的)

 

 

2.OLEDB

OLEDB驱动:http://www.microsoft.com/downloads/details.aspx?FamilyID=e1a87d8f-2d58-491f-a0fa-95a3289c5fd4&DisplayLang=en

 

oledb的字符串就简单很多了

ConnectionString = @"Provider=VFPOLEDB.1;DATA Source=C:/";

datasource部分只是dbf存放路径就可以,当然全路径也没有问题的

select的时候也简单很多

string sql = @"select * from test"(test是你的dbf文件名) 

 

关于写入DBF

1.ODBC

我用ODBC的DataAdapter进行Update的是否会抛异常,我也没弄明白哪个环节出错,最后逼着自己去写Command手动Insert

一般时候写Insert的都是这样写

string sql = "insert tableA (A, B, C) values(?, ?, ?)";

然后再手动加参数

对于非数值型的参数可以这样做,但对于数值型这样操作会出错,抛出异常

System.Data.Odbc.OdbcException:ERROR [22018] [Microsoft][ODBC Visual FoxPro Driver]Data type mismatch.

(这个问题我也没有弄明白)

所以sql语句就要自己拼接了,不能用'?'去添加参数 

eg:

int X = 0;

string sql = "insert tableA (A, B, C) values(?, ?, " + X.ToString() + ")";

参数多的时候不推荐用ODBC方式,会很痛苦的

 

2.OLEDB

OLEDB是个好东西,用DataAdapter的Update没有错误,也不用手动写Insert,放心用吧!

 

总结了一下DBF的使用心得,其实还有一个问题还没有弄明白的,就是对某些DBF进行操作的时候

抛出异常 Variable 'XXX' is not found (XXX是随机的)

对于这个问题,恳请各位高手进行指导

 

以上是我的关于DBF的一些心得,其中可能会有不正确的地方,欢迎指正!

 

 

 

 

.net连接DBF文件

 string table ="f://d//dedg.dbf"System.Data.Odbc.OdbcConnection conn = new System.Data.Odbc.OdbcConn...
  • sinton
  • sinton
  • 2011-05-27 10:28:00
  • 1363

C#.net 访问VFP(DBF)文件的示例

  • 2013年03月25日 10:07
  • 676KB
  • 下载

用C#对DBF数据库的操作

现在大部分C#连接数据库都会是sql server 。但对一些旧的数据库文件的连接和操作就不太熟了。 今天就有这个问题,要对FOXPRO生成的DBF文件数据库进行操作。 我在CSDN上查了很久,大...
  • tangkechu
  • tangkechu
  • 2013-09-25 10:27:53
  • 1602

c#操作DBF数据库文件

刚来一个新的学校,学校里管理数据都是用的DBF。。这让我内牛满面,于是乎,管理学生成绩的任务便落到了我这个搞.NET的童鞋身上了。上网查了下c#操作DBF的文章,不是很多种办法就是讲的不清不楚,我通过...
  • wanmingtom
  • wanmingtom
  • 2011-01-07 22:14:00
  • 8212

c#读取dbf文件并输出某一列

private void button1_Click(object sender, EventArgs e) { string constr = "Provid...
  • hnyzwtf
  • hnyzwtf
  • 2015-07-08 10:01:06
  • 1691

c#实现将DataTable中的数据导出到DBF文件

由于种种原因,需要将某些数据以dbf的形式导出,网上苦寻资料,走了许多弯路; 首先记录下走的弯路 1.DBF字段名称长度限制     在编程过程中老是报一些奇怪的错误,创建表格的sql语句拿到sql数...
  • dujiajiyiyi
  • dujiajiyiyi
  • 2016-12-23 16:27:51
  • 2336

C# 导出DBF的两种方法

  • 2013年08月12日 10:33
  • 42KB
  • 下载

用C#生成并保存DbF格式的方法

在开发一个项目时,用户要求数据可以保存到DBF数据库中。因此在结束后将代码简化提出来,希望对大家有些帮助,类代码如下:using System;using System.Collections;usi...
  • null1
  • null1
  • 2008-10-07 08:57:00
  • 6584

.NET 里面访问DBF文件

string strConn ="Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;Exclusive=Yes;SourceDB="+"c:...
  • dahan_wangtao
  • dahan_wangtao
  • 2006-08-26 20:59:00
  • 796

<em>dbf</em>各版本<em>访问</em>驱动

适合<em>访问dbf</em> 表,开发接口案例。本人从生产设备中提取一些<em>dbf</em>表用到,有利于erp与机械设备的整合。
  • 2018年04月14日 00:00
收藏助手
不良信息举报
您举报文章:.Net(C#)操作DBF心得
举报原因:
原因补充:

(最多只允许输入30个字)