.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的一些心得,其中可能会有不正确的地方,欢迎指正!

 

 

 

 

使用C#读取dbf行情文件

由于历史的原因,我国的上交所和深交所使用的还是dbf文件来进行行情数据的分发,关于卫星报盘系统,可以参考:http://maltig.itpub.net/post/12165/195151 这个博客中...
  • studyzy
  • studyzy
  • 2013年09月10日 14:22
  • 2091

.net DBF文件读取,删除标记记录读取

由于历史的原因,我国的上交所和深交所使用的还是dbf文件来进行行情数据的分发,关于卫星报盘系统,可以参考:http://maltig.itpub.net/post/12165/195151这个博客中关...
  • oydu
  • oydu
  • 2014年02月21日 11:16
  • 1136

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
  • 1435

.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
  • 1324

C#操作VFP的dbf数据库文件实例

实例中分别使用Oledb和Odbc操作vfp数据库dbf文件,操作包括:读取,增删改。已测试可直接使用,使用方法:下面代码分两个部分aspx和cs,在vs2005中新建网站项目,分别copy文件到想要...
  • xddouble
  • xddouble
  • 2007年07月31日 11:30
  • 4598

基于javadbf-0[1].4.0.jar包的dbf文件操作源码

  • 2008年12月04日 16:33
  • 21KB
  • 下载

python下用dbfread操作DBF文件

今天要从同事发给我的一个文件中统计一些数字,一看还是数据库文件,以DBF结尾,近1个G呢。电脑上也没装ACCESS等数据库管理软件。后来找了个DBF阅读器,发现虽然能打开,但是筛选什么的不方便,也不好...
  • z_yong_cool
  • z_yong_cool
  • 2016年04月11日 23:10
  • 5113

.net(c#)读取*.dbf文件数据的类库

新制作了一个库存管理软件(c/s),数据库用mssql,客户端用.net开发。用户在客户端对数据进行查看、添加、导入、编辑、删除、打印等操作。公司原来的一些数据存储在.dbf文件中,必须在客户端对.d...
  • yuxi81
  • yuxi81
  • 2006年07月29日 09:22
  • 7684

c#操作DBF数据库文件

刚来一个新的学校,学校里管理数据都是用的DBF。。这让我内牛满面,于是乎,管理学生成绩的任务便落到了我这个搞.NET的童鞋身上了。上网查了下c#操作DBF的文章,不是很多种办法就是讲的不清不楚,我通过...
  • wanmingtom
  • wanmingtom
  • 2011年01月07日 22:14
  • 7898
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.Net(C#)操作DBF心得
举报原因:
原因补充:

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